C语言复习资料1.docx
《C语言复习资料1.docx》由会员分享,可在线阅读,更多相关《C语言复习资料1.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言复习资料1.docx](https://file1.bdocx.com/fileroot1/2023-2/11/52a7ac4b-2fcd-4c56-99d3-d1ff94f60658/52a7ac4b-2fcd-4c56-99d3-d1ff94f606581.gif)
C语言复习资料1
1.下述循环的循环次数是(B)
intk=2;
while(k=0)printf("%d",k);
k--;printf("\n");
A、无限次B、0次C、1次D、2次
2.在下列选项中,没有构成死循环的程序段是(C)
A、inti=100;B、for(;;)
while
(1)
{i=i%100+1;
if(i>100)break;
}
C、intk=1000;D、ints=36;
do{++k;}while(k>=10000);while(s);--s;
3.若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是(C)
inta[]={0,1,2,3,4,5,6,7,8,9},*p,i;
p=a;
A、*(a+i)B、a[p-a]C、p+iD、*(&a[i])
4.下面能正确将字符串"Boy"进行完整赋值操作的语句是(B)
A、chars[3]={'B','o','y'};B、chars[]="Boy";
C、chars[3]={"Boy"};D、chars[3];
s[0]='B';s[1]='o';s[2]='y';
5.以下程序段的输出结果是(D)
chararr[]="ABCD";
char*ptr;
for(ptr=arr;ptrprintf("%s\n",ptr);
A、ABCDB、AC、DD、ABCD
BCD
CD
D
6.C语言的auto型变量是(A)
A、存储在动态存储区中。
B、存储在静态存储区中。
C、存储在计算机CPU的寄存器中。
D、存储在外存储器中。
7.测试文件是否结束函数的函数名是(A)
A、feofB、EOFC、eofD、FEOF
8.下面程序段的输出结果是(C)
inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];
p=a;
printf(“%d\n”,*(*(p)+2));
A、1B、5C、3D、7
9.C语言规定:
在一个源程序中,main函数的位置是(C)
A、必须在最开始B、必须在系统调用的函数的后面
C、可以任意D、必须在最后
10.一个C程序的执行是从(A)
A、本程序的main函数开始,到main函数结束
B、本程序的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
11.下面的四个选项中,均是不合法的用户标识符的选项是()
A、AB、floatC、b-aD、_123
P_0la0gototemp
do_AintINT
12.下面四个选项中,均是合法转义字符的选项是()
A、’\’’B、’\’C、’\018’D、’\\0’
‘\\’‘\017’‘\f’‘\101’
‘\n’‘\”’‘xab’‘x1f’
13.sizeof(float)是(B)
A、一个双精度型的表达式B、一个整型表达式
C、一种函数调用D、一个不合法的表达式
14.
15
16.若二维数组a有m列,则在a[i][j]前的元素个数为(B)
A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+1
17.对两个数组a和b进行如下初始化
chara[]=”ABCDEF”;
charb[]={‘A’,’B’,’C’,’D’,’E’,’F’};
则以下叙述正确的是(D)
A、a与b数组完全相同B、a与b长度相同
C、a和b中都存放字符串D、a数组比b数组长度长
18.C语言中有关全局变量的说法,正确的是(D)
A、在使用到它的所有文件中均需定义
B、在函数体外定义一次
C、在main函数中定义
E、在main函数外定义
19.若有数组名作为函数调用时的实参,则传递给该函数形参的是(A)
A、数组的首地址B、数组的第一个元素的值
C、数组中全部元素的值D、数组元素的个数
20.下面程序段的输出结果是(C)
inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];
p=a;
printf(“%d\n”,*(*(p+1)+2));
A、3B、4C、6D、7
21.不属于C语言程序基本结构的是(C)
A)顺序结构B)选择结构C)函数结构D)循环结构
22.若有定义及赋值:
inta[6][6],*p;p=*a;
则下列各式中能表示元素a[0][1]列地址的表达式是B。
A)&a[0]+1B)a[0]+1C)*(p+1)D)p+1
23.十进制数123转换成十六进制数是。
A)7AHB)7BHC)7CHD)7DH
24.C语言中合法的字符常量是。
A)'\058'B)'ab'C)'\xab'D)”\0”
25.下列字符中,ASCⅡ码值最小的是D。
A)AB)aC)0D)空格
26.下面程序输出结果是__________
main()
{intk=0;charc='A';
do
{switch(c++)
{case'A':
k++;break;
case'B':
k--;
case'C':
k+=2;break;
case'D':
k=k%2;continue;
case'E':
k=k*10;break;
default:
k=k/3;
}
k++;
}while(c<'G');
printf("k=%d\n",k);
}
A)k=3B)k=4C)k=2D)k=0
27.设有如下定义:
intx=l,y=-1;,则语句:
printf("%d\n",(x--&++y));的输出结果是()
A)1B)0C)-1D)2
28.C语言规定,函数返回值的类型是由D。
A)return语句中的表达式类型所决定
B)调用函数时的主调函数类型所决定
C)调用函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
29.下列定义中,不是指针数组定义的是C。
A)int*p[5];B)float*q[4];C)int(*r)[6];D)char*w[7];
30.以下程序运行结果为____D______
#definePT3.5
#defineS(x)PT*x*x
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));
}
A)14.0B)31.5C)27.5D)10.5
31.下面程序输出结果是()
main()
{chara[]="ABCDEFG",k,*p;
fun(a,0,2);fun(a,4,6);
printf("%s\n",a);
}
fun(char*s,intp1,intp2)
{charc;
while(p1{c=s[p1];s[p1]=s[p2];
s[p2]=c;p1++;p2--;
}
}
A)ABCDEFGB)DEFGABCC)GFEDCBAD)CBADGFE
32.以下程序的输出结果是(C)
main()
{inta=1,i;
for(i=0;i<4;i++)
printf("%d",func(a));
}
func(a)
inta;
{intb=0;staticintc=1;
b++;c++;
return(a+b+c);
}
A)4444B)4455C)4567D)5678
33.执行下面的程序后,y的值是___C_______
main()
{inta[]={2,4,6,8,10};
inty=1,x,*p=a+1;
for(x=0;x<3;x++)y+=*(p+x);
printf("%d\n",y);
}
A)17B)18C)19D)20
34.若使用下述程序段将整数30和浮点数5.5分别赋给变量a和b,那么输入应该是(B)
inta;
floatb;
scanf("a=%d,b=%f",&a,&b);
A)305.0B)a=30,b=5.5C)30,5.5D)a=30b=5.5
35.设有如下定义:
int(*ptr)();
则以下叙述中正确的是(C)
A)ptr是指向一维数组的指针变量
B)ptr是指向int型数据的指针变量
C)ptr是指向函数的指针,该函数返回一个int型数据
D)ptr是一个函数名,该函数的返回值是指向int型数据的指针
36.设有以下定义:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
则以下能够正确表示数组元素a[1][2]的表达式的是(D)
A)*(*ptr+1)[2]B)*(*(p+5))
C)(*ptr+1)+2D)*(*(a+1)+2)
37.
38.执行下面的程序后,a的值是(B)
#defineSQR(X)X*X
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A)10B)1C)9D)0
39.表达式18/4*sqrt(4.0)/8的值的数据类型为(C)
A)intB)float
C)doubleD)不确定
40.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A)1B)2C)3D)6
41.判断char型变量ch是否为大写字母的正确表达式()
A)’A’<=ch<=’Z’B)(ch>=’A’)and(ch<=’z’)
C)(ch>=‘A’)&&(ch<=’Z’)D)(‘A’<=ch)||(‘Z’>=ch)
42.以下程序的输出结果是()
main()
{inti,k,a[10],p[3];k=5;
for(i=0;i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k);
}
A)20B)21C)22D)23
43.下面程序的运行结果是(C)
main()
{charch[7]={"65ab21"};
inti,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';
printf("%d\n",s);}
A)12ba56B)6521C)6D)62
44.以下程序运行后的结果是()。
main()
{chars[]="12345678";intv[4]={0,1,1,0},k,i;
for(k=0;s[k];k++)
{switch(s[k])
{case'1':
i=0;case'2':
i=1;
case'3':
i=2;case'4':
i=3;}
v[i]++;
}
for(k=0;k<4;k++)printf("%d",v[k]);
}
A)0123B)0118C)5678D)0246
45.
46.二进制数1110111B转换成十六进制数是()
A)77HB)37HC)73HD)E7H
47.能正确表示a和b同时为正或同时为负的逻辑表达式是()
A)(a>=0‖b>=0)&&(a<0‖b<0)B)(a>=0&&b>=0)&&(a<0&&b<0)
C)(a+b>0)&&(a+b<=0)D)a*b>0
48.要把高级语言编写的源程序转换为目标程序,需要使用()
A)编辑程序B)驱动程序C)诊断程序D)编译程序
49.英文小写字母d的ASCII码为100(十进制),英文大写字母D的ASCII码为()
A)50B)66C)52D)68
50.下面程序输出结果是()
voidprtv(int*x)
{printf("%d\n",++*x);
}
main()
{inta=25;prtv(&a);
}
A)23B)24C)25D)26
1.B2.C3.C4.B5.D
6.A7.A8.C9.C10.A
11.C12.A13.B14.B15.C
16.B17.D18.B19.A20.C
21.C22.B23.B24.C25.D
26.B27.B28.D29.C30.C
31.D32.C33.C34.B35.C
36.D37.C38.B39.C40.B
41.C42.B43.C44.B45.B
46.A47.D48.D49.D50.D