c语言复习题.docx
- 文档编号:24611230
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:21
- 大小:21.36KB
c语言复习题.docx
《c语言复习题.docx》由会员分享,可在线阅读,更多相关《c语言复习题.docx(21页珍藏版)》请在冰豆网上搜索。
c语言复习题
C复习1
一、单项选择题。
(单项选择题1~30题每题1分,31~40题每题2分)
1.下列关于C语言的说法不正确的是:
A.C语言既具有高级语言的一切功能,也具有低级语言的一些功能
B.C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号
C.注释可以出现在程序中任意合适的地方
D.命令行后面不能加分号,命令行不是C语言的语句
答案:
2
2.C语言程序的执行顺序是:
A.从第一个函数开始执行
B.从任意函数开始执行
C.从main函数开始执行
D.从第一条语句开始执行
答案:
3
3.以下关于注释的叙述,正确的是:
A.注释不参与编译,不影响程序结果
B.注释参与编译,影响程序结果
C.注释参与编译,但不影响程序结果
D.注释不参与编译,但影响程序结果
答案:
1
4.以下叙述正确的是:
A.C语言程序只能在VC环境下编译
B.C语言程序只能在TC环境下编译
C.C语言程序只能在VC或TC环境下编译
D.C语言程序可以在任意C编译器下编译
答案:
4
5.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符:
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母,数字和下划线中任一字符
答案:
3
6.以下叙述正确的是:
A.C语言只提供一种整型数据
B.C语言的整形数据在内存中是以源码形式存放的
C.C语言提供的整型数据占两个字节
D.C语言提供了无符号和有符号两大类整型数据
答案:
4
7.若有说明语句:
charc='\72';则变量c
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c的值不确定
答案:
1
8.若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是
A.sizeof,&=,<<,^
B.sizeof,<<,^,&=
C.^,<<,sizeof,&=
D.<<,^,&=,sizeof
答案:
2
9.putchar函数可以向终端输出一个
A.整型变量表达式值
B.实型变量值
C.字符串
D.序符或字符型变量值
答案:
4
10.程序段:
intx=12;
doubley=3.141593;
printf(“%d%8.6f”,x,y);
的输出结果是
A.123.141593
B.123.141593
C.12,3.141593
D.123.141593
答案:
1
11.已有定义语句:
intx=3,y=4,z=5;则值为0的表达式是
A.x>y++
B.x<=++y
C.x!
=y+z>y-z
D.y%z>=y-z
答案:
1
12.请阅读以下程序:
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("$$$\n");
}
以上程序
A.有语法错不能通过编译
B.可以通过编译但不能通过连接
C.输出***
D.输出$$$
答案:
1
13.有以下程序
#include
main()
{inti=5;
do
{if(i%3=1)
if(i%5==2)
{printf("*%d",i);break;}
i++;
}while(i!
=0);
printf("\n");
}
程序的运行结果是()。
A.*7
B.*3*5
C.*5
D.*2*6
答案:
1
14.以下程序段的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf("*");
程序段的输出结果是()
A.********
B.****
C.**
D.*
答案:
4
15.以下选项对m数组,引用错误的是
intm[]={5,4,3,2,1},i=4;
A.m[--i]
B.m[2*2]
C.m[m[0]]
D.m[m[i]]
答案:
3
16.有下列程序:
#include
#include
voidf(charp[][10],intn)/*字符串从小到大排序*/
{chart[10];inti,j;
for(i=0;i for(j=i+1;j if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() {charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd"}; f(p,5); printf("%d\n",strlen(p[0])); } 程序运行后的输出结果是()。 A.2 B.4 C.6 D.3 答案: 3 17.以下正确的说法是()。 A.用户若需要调用标准库函数,调用前必须重新定义 B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义 C.系统不允许用户重新定义标准库函数 D.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用 答案: 2 18.以下函数定义的类型符是() fff(doublex){printf("%lf",x*x);} A.与参数x的类型相同 B.void类型 C.int类型 D.无法确定 答案: 3 19.以下func函数的调用中实参的个数是() func((exp1,exp2),(exp3,exp4,exp5)); A.1 B.2 C.5 D.3 答案: 2 20.以下叙述中错误的是() A.用户定义的函数中可以没有rcturn语句 B.用户定义的函数中可以有多个rcturn语句,以便可以调用一次返回多个函数值 C.用户定义的函数中若没有rcturn语句,则应当定义函数为void类型 D.函数的return语句中可以没有表达式 答案: 2 21.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是( ) A.main(){……x=fun(2,10);……}{……x=fun(2,10);……} B.floatfun(inta,intb){……}main(){……x=fun(i,j);……} C.floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……} D.main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……} 答案: 1 22.以下叙述不正确的是() A.在不同的函数中可以使用同名的变量 B.函数中的形式参数是局部变量 C.在函数内定义的变量只在本函数范围内有效 D.在函数内复合语句中定义的变量也可在本函数范围内有效 答案: 4 23.若有以下定义,则对a数组元素的正确引用是()。 inta[5],*p=a; A.*&a[5] B.a+2 C.*(p+5) D.*(a+2) 答案: 4 24.以下程序的输出结果是()。 #include voidprt(int*x,int*y,int*z) {printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() {inta=10,b=40,c=20; prt(&a,&b,&c); prt(&a,&b,&c);} A.11,42,3112,22,41 B.11,41,2012,42,20 C.11,21,4011,21,21 D.11,41,2112,42,22 答案: 2 25.下面能正确进行字符串赋值操作的是()。 A.chars[]="ABCDE"; B.chars[5]={'A','B','C','D','E'}; C.char*s;s="ABCDE"; D.char*s;scanf("%s",s); 答案: 3 26.下面程序段的运行结果是()。 charstr[]="ABC",*p=str; printf("%d\n",*(p+3)); A.67 B.0 C.字符'C'的地址 D.字符'C' 答案: 2 27.以下对结构体类型变量td的定义中,错误的是() A.typedefstruct{intn;floatm;}AA; AAtd; B.structaa{intn;floatm;}td; C.struct{intn;floatm;}aa;structaatd; D.struct{intn;floatm;}td; 答案: 3 28.有以下程序 #include structSTU {charname[10]; intnum;}; voidf(char*name,intnum) {structSTUs[2]={{"SunDan",20044},{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() {structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}}, *p; p=&s[1];f(p->name,p->num); printf("%s%d\n",p->name,p->num);} 程序运行后的输出结果是() A.SunDan20042 B.SunDan20044 C.LiSiGuo20042 D.YangSan20041 答案: 1 29.有以下程序 main() {union{unsignedintn; unsignedcharc; }u1; ul.c='A'; printf("%c\n",u1.n); } 执行后输出结果是()。 A.产生语法错 B.随机值 C.A D.65 答案: 1 30.有以下程序 main() {union{unsignedintn; unsignedcharc; }u1; ul.c='A'; printf("%c\n",u1.n); } 执行后输出结果是()。 A.产生语法错 B.随机值 C.A D.65 答案: 1 31.若运行时给变量x输入12,则以下程序的运行结果是 main() {intx,y; scanf("%d",&x); y=x>12? x+10: x-12; printf("%d\n",y); } A.0 B.22 C.12 D.10 答案: 1 32.下列能正确定义字符串的语句是()。 A.charstr[]={'\064'}; B.charstr="kx43"; C.charstr="; D.charstr[]="\0"; 答案: 4 33.若有定义语句: chars[10]="1234567\0\0";,则strlen(s)的值是()。 A.7 B.8 C.9 D.10 答案: 1 34.C语言程序由函数组成,它的()。 A.主函数必须在其它函数之前,函数内可以嵌套定义函数 B.主函数可以在其它函数之后,函数内不可以嵌套定义函数 C.主函数必须在其它函数之前,函数内不可以嵌套定义函数 D.主函数必须在其它函数之后,函数内可以嵌套定义函数 答案: 2 35.关于全局变量,下列说法正确的是()。 A.任何全局变量都可以被应用系统中任何程序文件中的任何函数访问。 B.任何全局变量都只能被定义它的程序文件中的函数访问。 C.任何全局变量都只能被定义它的函数中的语句访问。 D.全局变量可用于函数之部传递数据。 答案: 4 36.以下叙述中正确的是() A.全局变量的作用域一定比局部变量的作用域范围大 B.静态(static)类别变量的生存期贯穿于整个程序的运行期间 C.函数的形参都属于全局变量 D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值 答案: 2 37.有如下程序段: int*p,a=10,b=1; p=&a;a=*p+b; 执行该程序段后,a的值为()。 A.12 B.11 C.10 D.编译出错 答案: 2 38.执行以下程序后,a,b的值分别为()。 main() {inta,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("%d,",a); printf("%d\n",b); } A.-1,5 B.1,6 C.0,7 D.4,10 答案: 3 39.设有如下说明 typedefstruct {intn;charc;doublex;}STD; 则以下选项中,能正确定义结构体数组并赋初值的语句是()。 A.STDtt[2]={{1,‘A’,62},{2,‘B’,75}}; B.STDtt[2]={1,"A",62},2,"B",75}; C.structtt[2]={{1,‘A’},{2,‘B’}}; D.structtt[2]={{1,"A",62.5},{2,"B",75.0}}; 答案: 1 40.执行以下程序后的结果是() enumweekday{sun,mon=3,tue,wed,thu}; enumweekdayworkday; workday=wed; printf("%d\n",workday); A.4 B.3 C.5 D.编译出错 答案: 3 二、填空题。 (共17题,每题2分) 1.以下程序段的输出结果是__ main() { inta=2,b=3,c=4; a*=16+(b++)-(++c); printf("%d",a); } 回答: 参考答案: 28 2.下列程序运行时若从键盘输入: 102030 输出结果是_____ #include main() {inti=0,j=0,k=0; scanf("%d%d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k); } 回答: 参考答案: 102030 3.程序运行时输入1abcedf2df<回车>,则输出结果为 chara=0,ch; while((ch=getchar())! ='\n') { if(a%2! =0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A'; a++; putchar(ch); } 回答: 参考答案: 1AbCeDf2dF 4.以下程序的运行结果是 for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf("*"); 回答: 参考答案: * 5.以下程序的运行结果是 inty=9; for(;y>0;y--) if(y%3==0) printf("%d",--y); 回答: 参考答案: 852 6.输入: 65<回车>,程序能否输出结果 charc1,c2;scanf("%c",&c1); while(c1<65||c1>90)scanf("%c",&c1); c2=c1+32;printf("%c,%c",c1,c2); 回答: 参考答案: 不能 7.以下程序运行后,b的值是 inta=1,b; for(b=1;b<=10;b++) { if(a>=8)break; if(a%2==1) { a+=5;continue; } a-=3; } 回答: 参考答案: 4 8.如果一个函数只能被本文件中其他函数所调用,则称它为____________。 回答: 参考答案: 内部函数 9.下面的程序执行完后,n=_______。 intn=1; main() {staticintx=5;inty; y=n; func(); func();} func() {staticintx=4;inty=10; x=x+2; n=n+10; y=y+n; } 回答: 参考答案: 21 10.在程序中若用到数学函数sqrt时,必须在本文件中开头写上#include<_________>。 回答: 参考答案: math.h 11.函数体中通常有________部分和_________部分。 回答: 参考答案: 声明部分(说明部分)、语句部分(执行部分) 12.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将数计算: y1=(x+8)2-2(x+8)+6 y2=sin2(x)-2sin(x)+6 请填空. #include“math.h” doublefun(doublex){returm(x*x-2*x+6);} main() {doublex,y1,y2; printf(“Enterx: ”);scanf(“%lf”,&x); y1=fun(___________); y2=fun(___________); printf(“y1=%lf,y2=%lf\n”,y1,y2);} 回答: 参考答案: x+8sin(x) 13.该程序运行的结果是【1】。 #include #defineM100 voidfun(intm,int*a,int*n) {inti,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;} voidmain() {intaa[M],n,k; fun(10,aa,&n); for(k=0;k if((k+1)%20==0)printf("\n"); elseprintf("%4d",aa[k]); printf("\n");} 回答: 参考答案: 7 14.以下程序中函数fun的功能是: 统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。 请填空: #include #defineN3 typedefstruct {intnum;charnam[10];charsex;}SS; intfun(SSperson[]) {inti,n=0; for(i=0;i if(___________==’M’)n++; returnn; } main() {SSW[N]={{1,”AA”,’F’},{2,”BB”,’M’},{3,”CC”,’M’}};intn; n=fun(W);printf(“n=%d\n”,n); } 回答: 参考答案: person.sex 15.设有说明 structDATE{intyear;intmonth;intday;}; 请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day依次赋初值2006、10、1: ____________ 回答: 参考答案: structDATEd={2006,10,1} 16.我们可以用_________来命名新的类型名去代替已有的类型名。 回答: 参考答案: typedef 17.枚举元素作为常量,它们是_______的。 (有值\无值) 回答: 参考答案: 有值 三、程序编写题。 (共有2题,每题8分) 1.返回n个学生中低于平均分的人数,并将低于平均分的分数放在b所指的数组中。 回答: intfun(intsco[],intn,intb[]){inti,j=0;doubles=0;for(i=0;i 2.求200~300间的全部素数,程序部分给出,请补充两段注释间程序段。 #include #include voidmain() {intm,k,i,n=0; for(m=201;m<=300;m=m+2) {k=sqrt(m); /*补充程序段开始*/ /*补充程序段结束*/ if(n%10==0)printf("\n"); } printf("\n"); } for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%d",m);n=n+1;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题