C语言复习题.docx
- 文档编号:29629313
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:35
- 大小:30.30KB
C语言复习题.docx
《C语言复习题.docx》由会员分享,可在线阅读,更多相关《C语言复习题.docx(35页珍藏版)》请在冰豆网上搜索。
C语言复习题
一、选择题
1.下列叙述中正确的是( C)。
A)C语言编译时不检查语法
B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套调用
D)C语言所有函数都是外部函数
2.以下所列的C语言常量中,错误的是( B)。
A)0xFFB)1.2e0.5C)2LD)'\72'
3.下列选项中,合法的C语言关键字是(D )。
A)VARB)cherC)integerD)default
4.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( C)。
A)-3B)9C)-12D)6
5.设x、y、t均为int型变量,则执行语句:
x=y=3;t=++x||++y;后,y的值为( C)。
A)不定值B)4C)3D)1
6.若变量c为char类型,能正确判断出c为小写字母的表达式是(B )。
A)'a'<=c<='z'B)(c>='a')||(c<='z')
C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')
7.若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
( B)。
A)10<回车>
22<回车>
33<回车>
B)10.0,22.0,33.0<回车>
C)10.0<回车>
22.033.0<回车>
D)1022<回车>
33<回车>
8.有以下程序:
main()
{
inta,b,d=25;
a=d/10%9;b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是(B )。
A)6,1B)2,1C)6,0D)2,0
9.若执行以下程序时从键盘上输入9,则输出结果是(C )。
voidmain()
{intn;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
elseprintf("%d\n",n--);
}
A)11B)10C)9D)8
10.以下函数调用语句中含有(A)个实参。
func((e1+e2),(e3+e4+e5));
A)2B)3C)5D)语法错误
11.设i和k都是int类型,则for循环语句(B)。
for(i=0,k=-1;k=1;i++,k++)printf("****\n");
A)循环结束的条件不合法B)循环体一次也不执行
C)循环体只执行一次D)是无限循环
12.以下程序的输出结果是(D )。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
b+=3;}
printf("%d\n",a);
}
A)101B)6C)5D)4
13.假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是( C)。
A)3B)6C)10D)20
14.以下程序的输出结果是( C)。
main()
{inti,a[10];
for(i=9;i>=0;i--)a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A)258B)741C)852D)369
15、如a为int型,则与表达式a等价的C语言关系表达式是( B)
A)a>0B)a!
=0C)a==0D)a<0
16、在C语言中,下面关于数组的描述中正确的是( C)
A)数组的大小是固定的,但可以有不同的类型的数组元素
B)数组的大小是可变的,但所有数组元素的类型必须相同
C)数组的大小是固定的,但所有数组元素的类型必须相同
D)数组的大小是可变的,但可以有不同的类型的数组元素
17、在C语言中,不正确的int类型的常数是(D )。
A)32768B)0C)037D)0xAI
18、以下程序的输出结果是( D)B
main()
{inta=-1,b=1,k;
if((++a<0)&&!
(b--<=0))
printf("%d%d\n",a,b);
else
printf("%d%d\n",b,a);}
A)-11B)01C)10D)00
19、C语言中运算对象必须是整型的运算符是( A)
A)%B)/C)=D)〈=
20.C语言源程序的基本单位是(B)。
A)过程B)函数C)子程序D)标识符
21.下列程序的输出结果是(C)。
main()
{inta=7,b=5;
printf("%d\n",b=b/a);
}
A)5B)1C)0D)不确定值
22、设inta=12;表达式a+=a-=a*=a的值是(C )。
A)12B)144C)0D)132
23、以下程序的输出结果是( D )。
main()
{inta=011;
printf(“%d\n”,a);
}
A)12B)11C)10D)9
24、数组名作为实参传递给形参时,数组名被处理为( C )。
A)该数组的长度B)该数组的元素个数
C)该数组的首地址D)该数组中各元素的值
25、两个指针变量不可以(D)。
A)相加B)比较C)相减D)指向同一地址
26.设a为int型变量,执行下列赋值语句后,a的取值分别是(B)。
a=125.534;a=(int)125.521%4;a=5<<2;
A)125,31,1B)125,1,20C)125,31,20D)125.534,2,20
27、enumcolor{red,green,yellow=5,white,black};定义了一枚举类型。
值表中各
标符的枚举值依次为(C)
A)1、2、3、4、5B)0、1、5、2、3
C)0、1、5、6、7D)3、4、5、6、7
28、请选出可用作C语言用户标识符的一组标识符( B)
A)voidB)a3_b3C)ForD)2a
define_123-abcDO
WORDIFCasesizeof
29、假设在程序中a、b、c均被定义成整型,并且已赋大于1的值,则下列能正确
表示代数式
的表达式是(D )
A)1/a*b*CB)1/(a*b*c)
C)1/a/b(float)cD)1.0/a/b/c
30.能正确表示a和b同时为正或同时为负的逻辑表达式是( 无D?
)。
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
31.在以下一组运算符中,优先级最高的运算符是( C)。
A)<=B)=C)%D)&&
32、有如下程序:
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf(“%f\n”,y);
}
该程序的输出结果是( C)
A)0.000000B)0.250000C)0.500000D)1.000000
33、若k为整形,则while循环执行(D )次。
k=2;
while(k=0)
printf(“%d”,k);
k--;
printf(“\n”);
A)10B)1C)0D)无数次
34、执行下面程序片段的结果是( )
intx=23;
do
{printf("%2d",x--);}
while(!
x);
A)打印出321B)打印出23
C)不打印任何内容D)陷入死循环
35.设有如下的变量定义:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是( )。
A)a+=a-=(b=4)*(a=3)B)x%(-3);C)a=a*3=2D)y=float(i)
36.设x和y均为int型变量,则以下语句:
x+=y;y=x-y;x-=y;的功能是( )。
A)把x和y按从大到小排列B)把x和y按从小到大排列
C)无确定结果D)交换x和y中的值
37、以下程序的输出结果是( )
main()
{inti;
for(i=1;i<6;i++)
{if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
A)#*#*#B)#####C)*****D)*#*#*
38、(设有chara[5],*p=a;)下面的选项中正确的赋值语句是( )。
A)p=p+2;B)a=a+2;
C)*p=“abcd”;D)*a=“abcd”;
39、以下程序的输出结果为()。
#defineCUBE(x)(x*x*x)
#include"stdio.h"
main()
{inti=4;
i=CUBE(i);
printf("%d\n",i);
}
A)17B)64C)125D)53
40、要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。
A)fp=fopen("file","r");B)fp=fopen("file","w");
C)fp=fopen("file","r+");D)fp=fopen("file","w+");
41.有以下语句:
intb;charc[10];,则正确的输入语句是( )。
A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);
c)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);
42.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为( )。
if(a
if(c elseif(a elsex=3; elsex=4; A)1B)2C)3D)6 43、下面函数的功能是( ) sss(s,t) char*s,*t; {while((*s)&&(*t)&&(*t++==*s++)); return(*s-*t);} A)求字符串的长度 B)比较两个字符串的大小 C)将字符串s复制到字符串t中 D)将字符串s接续到字符串t中 44、若有以下说明和语句,则下列引用方式中不正确的是()。 structworker {intno; char*name;}work,*p=&work; A)work.noB)(*p).noC)p->noD)work->no 45、要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。 A)fp=fopen("file","r");B)fp=fopen("file","w"); C)fp=fopen("file","r+");D)fp=fopen("file","w+"); 46、在C语言中,局部变量黙认(或缺省)的存储类型是( ) A)autoB)registerC)staticD)extern 47、能正确表示逻辑关系: “0≤a≤10”的C语言表达式是( ) A)a>=10ora<=0B)0<=a<=10 C)a>=0&&a<=10D)a>=10anda<=0 48.设有如下程序段,下面描述中正确的是()。 intk=10;while(k=0)k=k-1; A)循环次数不确定B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次 49.以下程序的输出结果为()。 inti; voidprt() {for(i=5;i<8;i++)printf("%c",'*'); printf("\t"); } main() {for(i=5;i<=8;i++)prt(); } A)***B)************ C)******D)*** 50、设有说明语句: chara=’\72’;则变量a ( ) A)包含1个字符B)包含2个字符 C)包含3个字符D)说明不合法 51、若有定义inta,b,x;且变量都已正确赋值,下面选项中合法的if语句是( ) A)if(a==b)x++;B)if(a= C)if(a<>b)x++;D)if(a=>b)x++; 52、有以下程序: #include main() {char*p,*q; p=(char*)malloc(sizeof(char)*20);q=p; scanf("%s%s",p,q);printf("%s%s\n",p,q); } 若从键盘输入: abcdef<回车>,则输出结果是( ) A)defdefB)abcdefC)abcdD)dd 53.下面各语句行中,不能正确对字符串赋值的语句行是( )。 A)charST[4][5]={"ABCDE"}; B)char*s;scanf("%s",s); C)char*s;s="ABCDE"; D)chars[5]={'A','B','C','D','E'}; 54.在C语言程序中,以下说法正确的是( )。 A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义和函数的调用都不可以嵌套 C)函数的定义不可以嵌套,但函数的调用可以嵌套 D)函数的定义和函数的调用都可以嵌套 55.以下函数调用语句中含有()个实参。 func((e1+e2),(e3+e4+e5)); A)2B)3C)5D)不确定 56.设有如下一段程序: int*var,ab; ab=100;var=&ab;ab=*var+10; 执行上面的程序段后,ab值为( )。 A)120B)110C)100D)90 57、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( ) A)c=b=a;B)(a=c)‖(b=c); C)(a=c)&&(b=c);D)a=c=b; 58、以下程序的输出结果是( )。 main() {inta=7,b=5; printf(“%d\n”,b=b/a); } A)不确定值B)5C)1D)0 59、若有以下定义: chara;intb;floatc;doubled;则表达式a*b+d-c值的类 型为( ) A)floatB)intC)charD)double 60、以下程序执行后a的值是( ) main() {inta,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf("%d\n",a);} A)4B)1C)0D)运行时出错,a无定值 61、有以下程序运行后的输出结果是( ) main() {inta=1,b; for(b=1;b<=10;b++) { if(a>=8)break; a+=3; } printf("%d\n",b); } A)3B)4C)5D)6 62、C语言规定,程序中各函数之间( ) A)既允许直接递归调用也允许间接递归调用 B)不允许直接递归调用也不允许间接递归调用 C)允许直接递归调用不允许间接递归调用 D)不允许直接递归调用允许间接递归调用 63、有如下函数调用语句( ) func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是 A)3B)4 C)5D)有语法错 64、以下程序的输出结果是( ) main() {chara[10]={'1','2','3','4','5','6','7','8','9',0},*p; inti; i=8; p=a+i; printf("%s\n",p); } A)6B)7C)8D)9 65、设有定义: floaty,*p=&y;,假定变量y在内存中所占地址为1000~1003。 那么p的值为( )。 A)1000B)1001C)1002D)1003 66、设有如下枚举类型定义: ( ) enumlanguage{Basic=3,Assembly,Ada,C,Fortran}; 枚举量C的值为 A)4B)5C)6D)7 67、设有字符数组a,则正确的输入语句是( ) A)gets('a');B)scanf("%c",a); C)scanf("%s",a);D)gets("a"); 68、若x,y为实类型的变量,要判断x,y相等,最好使用下列关系表达式()。 (A)x==y(B)x-y==0 (C)fabs(x-y)<1e-8(D)labs(x-y)<1e-8 69、在C语言中,合法的字符常量是( ) A)'\084'B)'\x43'C)'ab'D)"\0" 70、下面程序的输出是( ) main() {unsigneda=32768; printf("a=%d\n",a);} A)a=32768B)a=32767C)a=-32767D)a=-1 71、在C程序的函数调用时,主调函数中的实参和被调函数中的形参( ) A)个数、次序必须相同,但数据类型可以不考虑 B)个数、次序和对应参数的数据类型都应该相同 C)个数、次序和数据类型均可以不相同 D)对应参数的数据类型应该相同,但个数和次序可以不考虑 72、调用strlen(“abcd\0ef\ng\0”)的结果为( ) A)4B)5C)8D)10 73、下面的程序( ) main() {intx=3; do {printf("%d\n",x-=2);} while(! (--x));} A)输出的是1B)输出的是1和-2 C)输出的是3和0D)是死循环 74、有以下程序运行后的输出结果是( ) main() { chara[7]="a0\0a0\0";intj; j=strlen(a); printf("%d\n",j); } A)2B)6C)7D)5 75、若变量已正确定义并赋值,下面符合C语言语法的表达式是( ) A)a: =b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b 76、有如下程序: main() {intx=1,a=0,b=0; switch(x){ case0: b++; case1: a++; case2: a++;b++; } printf("a=%d,b=%d\n",a,b); }该程序的输出结果是( ) A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2 77、在下列选项中,不正确的语句是( ) A)++t;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1; 78、表达式: 10! =9的值是( ) A)trueB)非零值C)0D)1 79、在C语言提供的合法的关键字是( ) A)swicthB)cherC)CaseD)default 80、有以下程序: ( ) main() {intc=35;printf("%d\n",c&c);} 程序运行后的输出结果是 A)0B)70C)35D)1 81.下面程序的输出结果是( )。 #include #include voidmain() {char*s1="abcdef"; s1++; printf("%s\n",s1);} A)abcdefB)a C)bD)bcdef 82.设有说明ints[2]={0,1},*p=s;则下列错误的C语句是( )。 A)s+=1;B)p+=1;C)*p++;D)(*p)++; 83.有以下程序: #include main() {char*p="abcde\0fghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是( )。 A)12B)15C)6D)5 84.设有以下说明和定义: (假定int类型变量占用2个字节,假定long类型变量占用4个字节,假定char类型变量占用1个字节,假定double类型变量占用8个字节) unionDATA{longi;intk[5];charc;}max; 则下列语句的执行结果是( )。 printf("%d",sizeof(unionDATA)); A)4B)10C)1D)15 85.以下程序的输出结果是( )。 #definef(x)x*x main() {inta=6,b=2,c; c=f(a)/f(b); printf("%d\n",c); } A)9B)6C)36D)18 86.标准库函数fgets(s,n,f)的功能是( )。 A)从文件f中读取长度为n的字符串存入指针s所指的内存 B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C)从文件f中读取n个字符串存入指针s所指的内存 D)从文件f中读取长度为n-1的字符串存入指针s所指的内存 87、在下列程序中,调用f(8)的值是() imf(intn) { if(n==1)return (1); elseif(n==2)return (2); elsereturn(f(n-1)+f(n-2)); } A)13B)2lC)55D)34 88、若有以下说明和语句,那么对C数组元素的正确引用是() intc[4][5],(*cp)[5]; cp=c; A)cp+1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题