在做二级C语言的那个南开100题~第一套就有好几道不会的~~因为是自学又是刚学的~~所以希望大家帮忙解答时能说的详细些通俗些~~~先谢谢了~~~
1)main()
{
unsigned a=32768;int b;
b=a;
printf("b=%d\n",b);
} 程序执行后的输出结果是:
A)b=32768 B)b=32767 C)b=-32768 D)b=-1
PS:这道题我看到书上是有类似的 说什么b的范围是-32768~32767 具体解释没看太懂
2)void main()
{
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
} 执行后的输出的结果是:
A.2 B.3 C.4 D.编译时有错,无结果
PS:这道题第一个if成立,不就应该输出d的值么?后面两个else if和else不就不用执行了么?怎么会选B呢?
3)void main()
{
int x,i;
for(i=1;i<=100;i++)
{
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d",x);
}
} 程序的输出结果是:
A.39 81 B.42 84 C.26 68 D.28 70
PS:这道题的那个if(++x%2==0)是先算++还是先算%?应该是先算%的吧?可是先算%之后那个++还有什么用?还用算么?
4)void main()
{
char *s[]={"man","woman","both"},*p;
p=s[1];
printf("%s,%c\n",*(p+1),s[0]);
} 执行后输出结果是:
A.a,woman B.w,man C.o,man D.程序报错
PS:程序怎么会报错呢?哪里编辑错了?
5)fun(char *s1,char *s2)
{
int i=0;
while(s1[i]==s2[i]&&s2[i]!='\0')i++;
return(s1[i]=='\0'&&s2[i]=='\0');
} 此函数的功能是:
A.将s2所指字符串赋给s1
B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值喂1,否则函数值为0
C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
PS:我怎么觉得应该选C呢?s1[i]与s2[i]比较不就是比较两个串中相同下标的元素是否相同么?
6)typedef struct ST
{ long a;int b;char c[2];}NEW;
则下面叙述中正确的的是:
A.以上的说明形式非法 B.ST是一个结构体类型
C.NEW是一个结构体类型 D.NEW是一个结构体变量
PS:书上不是写struct ST是一个结构体类型么?答案不应该是B么?为什么是C呢?
7)void main()
{
int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8)break;
if(a%3!=1){a+=5;continue;}
a+=3;
}
printf("%d\n",b);
} 程序运行后的输出结果是:
A.3 B.4 C.5 D.6
PS:这道题的过程应该怎么读?
7)
#include<stdlib.h>
main()
{
char *p,*q;
p=(char*)malloc(sizeof(char)*20);q=p;
scanf("%s %s",p,q); printf("%s %s\n",p,q);
} 若从键盘输入:abc def<回车>,则输出结果是:
A.def def B.abc def C.def d D.d d
PS:关于那个malloc我在书上看的是按字节数分配内存空间,返回空间起始地址,在这程序里又什么用?还是不太明白。
就这几道题~请大家帮帮忙吧~~~马上就考级了~~这公共基础知识还不太会了~~着急啊~~~大家当初这公共基础知识都怎么复习的~~~