C程序设计复习题1.docx
- 文档编号:23288637
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:28
- 大小:30.82KB
C程序设计复习题1.docx
《C程序设计复习题1.docx》由会员分享,可在线阅读,更多相关《C程序设计复习题1.docx(28页珍藏版)》请在冰豆网上搜索。
C程序设计复习题1
《程序设计基础》复习题
一、选择题
1.下列选项中,合法的C语言变量名是(A)。
P49
A、_123abcB、123fC、defaultD、c\abc
2.设有定义:
charstr[20];能将“Cprogram”输入给str的语句是(A)。
A.gets(str);B.getchar(str);C.puts(str);D.scanf(“%c”,str);
3.在C语言中,合法的字符常量是:
(A)
A.‘\x43’‘B.\084’C.‘ab’D.“\0”
4.C程序从(A)开始执行。
A、main函数B、printf函数C、第1条语句D、scanf函数
5.按照C语言规定,可以作为函数名的是(A)。
A、defineB、O**KC、fun.cD)、ab$c
6.执行语句printf(“%c\n”,getchar());当键盘输入student<回车>时,结果为(A)。
AsBstudentCstudent‘\0’Dt
7、设u=56,v=37,则语句printf(“%d\n”,u u: v);的输出结果是(A)。 A.37B.56C.uD.u u: v 8.以下程序的输出结果是(A)P149(strlen字符数组,不包括\0) main() {charst[20]="hello\0\t\\\"; printf(%d%d\n",strlen(st),sizeof(st));} A.520B.99C.1320D.2020 9.以下关于C语言的叙述正确的是: (A) A.从main()函数开始执行B.从#includ C.从程序中的第一条语句开始执行D.从scanf()开始执行 10.执行语句scanf(“%d%d%d”,&x,&y,&z);后,能将整数5,6,7分别赋给变量x,y,z的是: (A)P83 A5└┘6└┘└┘7<回车>B5;6;7<回车> C5,6,7<回车>Dx=5,y=6,z=7<回车> 11.已有定义: intx=3,y=4,z=5;,则表达式! (x+y)+z-1&&y+z/2的值是(A).P94 A、1B、2C、0D、6、 12.叙述正确的是: (A) A.指针就是地址; B.形参不是局部变量C.switch语句中必须有break语句; D.在一个函数内部的复合语句中定义的变量可以在本函数中有效; 13.以下程序段(). intm=0,n=0; while(! m! =0)n+=++m; printf("%d\n",n); A.运行后输出1B.控制表达式非法C.运行后输出0D.执行无限多次; 14.为了避免ifelse语句的二义性,C规定else与()配对。 A.其之前最近未配对的ifB.缩排位置相同的if C.其之后最近未配对的ifD.同一行上的if 15.设变量x为float型且已赋值,则以下语句中能把x的值保留到小数点后两位,并将第3位四舍五入的是() A、printf("%7.2d",x);B、printf("%8.2f",x); C、printf("%6.3f",x);D、printf("%.3d",x); 16.以下程序的输出结果是: () A.20B.31C.321D.210 #include voidmain() {intn=4; while(n--)printf("%d",--n); } 17.以下程序的输出结果是: () A.21147B.21C.14D.7 #include voidmain() {intn=21; do{ if(n%7)break; printf("%d",n);} while(--n); } 18.在与switch语句配套的case后的表达式: () A.只能是常量或常量表达式B.可以是变量或常量C.只能是常量 D.无论是常量还是变量,只要在执行时已经有值就行 19.设有定义: floata=2,b=4,h=3;其中a,b,h分别表示梯形的底和高,以下C语言表达式不能再去计算出梯形面积的是(). A、(1/2)*(a+b)*hB、h/2*(a+b)C、(a+b)*h/2D、(a+b)*h*1/2 20.复合语句: {t=a;a=b;b=t;}的功能是() A.交换a,b的值B.求a,b,t的最小值C.求a,b的最大值D.求a,b,t的最大值 21、else应该和()配对使用。 A.其前最后一个没有配过对的ifB.其前第一个if C.其后最近的没有配过对ifD.其前最后一个if 22.下列叙述正确的是: () A.外循环中的break语句将结束所有循环B.外循环中的continue语句将结束所有循环 C.内循环中的break语句将结束所有循环D.内循环中的continue语句将结束所有循环 23.设j为int型变量,则以下循环语句的执行结果是(). for(j=10;j>3;j--) {if(j%3)j--; --j;--j; printf("%d",j); } A、74B、63C、73D、62 24.下列描述中不正确的是() A.可以对整型数组进行整体输入、输出B可以对字符型数组进行整体输入、输出 C.字符型数组中可以存放字符串 D不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值 25.语句strlen(strcat(“very”,”good! ”))的值为() A.9B.10C.11D.不确定 26.数组名作为实参时实际上被处理成()。 A.该数组首地址B.该数组各元素的值 C.该数组的长度D.该数组的元素个数 27.字符串“Iamastudent。 ”占用()个字节。 A、15B、16C、14D、13 28.下列对数组a的定义及初始化中,不正确的的是() A、inta[2][]={0,1,2,3,4,5};B、inta[][4]={3,5,6,9,2,1,7,4}; C、inta[2][4]={{3,4,5},{2,5,8}};D、inta[2][3]={3,5,6}; 29.下列选项中,对数组的不正确的定义是() A、intn=6,a[n]={0,1,2};B、inta[]={0,1,2,3,4,5}; C、inta[6];D、inta[6]={0,1,3}; 30.下列选项中能够把5,6,7赋给数组a的是()。 A.inta[3]={5,6,7};B.inta[3];a[]={5,6,7}; C.inta[];a[3]={5,6,7};D.inta[3]=5,6,7; 31.若有以下说明: inta[12]={1,2,3,4,5,6,7,8,9,10,11,12}; charc='a',d,g; 则数值为4的表达式是(). A、a['d'-c]B、a[4]C、a['d'-'c']D、a[g-c] 32.设有定义: chars1[30]=“good”,s2[]=“bye”;下列选项中能够输出goodbye的是()。 A.puts(strcat(s1,s2));B.puts(strcmp(s1,s2)); C.puts(strcpy(s1,s2));D.puts(strcat(s2,s1); 33.函数strlen(“I└┘am└┘a└┘student。 ”)的值等于()。 A、15B、16C、12D13 34.以下数组定义中不正确的是()。 A.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};B.intb[][3]={0,1,2,3}; C.intc[100][100]={0};D.inta[2][3]; 35.设有数组定义: chara[]="China";则数组a所占的空间为()。 A.6个字节B.5个字节C.7个字节D.4个字节 36.以下程序的输出结果是()。 A.3,5,7B.1,4,7C.1,5,9D.3,6,9 voidmain() {inti,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)printf("%d,",x[i][2-i]);} 37.以下程序的输出结果是() A.EFGHB.ABCDC.EFGD.ABCDEFGH IJKLEFGJKFGH IJOKL main() {charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k; for(k=1;k<3;k++)printf("%s\n",w[k]);} 38.设有以下定义,则所列叙述正确的是().。 charx[]="abcdefg"; chary[]={'a','b','c','d','e','f','g'}; A.数组x的长度大于数组y的长度B.数组x和数组y的长度相同 C.数组x和y完全相同D.数组x的长度小于数组y的长度 40.C语言中函数返回值的类型是由()决定的。 A.定义函数时所指定的函数类型B.该函数的实参类型 C.调用语句D.return语句中表达式的类型 42.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。 A.单向值传递B.地址传递 C.由实参传给形参,再由形参传回实参D.传递方式由用户指定 43.关于函数定义,下列说法正确的是: () A.C语言规定,函数不可以嵌套定义,可以嵌套调用 B.C语言规定,函数可以嵌套定义,不可以嵌套调用 C.C语言规定,函数既可以嵌套定义,也可以嵌套调用 D.C语言规定,函数既不可以嵌套定义,也不可以嵌套调用 44.设有函数定义: voidf(intx)下列函数声明语句正确的是()。 A.voidf(int);B.voidf()C.f(intx);D.f(int) 45.设有函数定义: voidf(intx){……;}下列说法正确的是: ()。 A.f的形参是整型,没有返回值 B.f的形式参数是整型,返回值也是整型 C.因为f返回值的类型是void,所以f一定是空函数 D.因为函数的返回值类型和形参类型不一致,所以函数定义有错误 46.关于函数调用,下列说法正确的是: () A.函数可以调用除main函数以外的任意函数 B.标准函数(即库函数)可以调用其它函数,其它函数不能调用标准函数 C.所有的函数都是平等的,所以可以互相调用 D.只有main函数才能调用其它函数,其它函数之间不能互相调用 47.一个C程序可以由多个函数组成,但只能有一个()函数。 A、main函数B、printf函数C、自定义函数D、scanf函数 48.设有函数定义: intfun(intn,floatx)下列选项中,能正确调用该函数的语句是()。 A、fun(5,2.0);B、fun(5.0,2.0);C、intfun(5,2);D、intfun(5,2.0); 49.以下不正确的说法是()。 A.在函数内的复合语句中定义的变量在本函数范围内有效B.形式参数是局部变量 C.在函数内定义的变量只在本函数范围内有效 D.在不同函数中可以使用相同名字的变量 50.关于函数,下列说法正确的是()。 A.主函数可以调用其它函数,其它函数不能调用主函数 B.所有的函数都可以互相调用 C.只有系统定义的函数才能调用用户自定义的函数 D.函数不能嵌套调用 51.设有函数声明voidfunction(floatx);则函数function是()。 A、不返回值的函数B、空函数C、返回值为实型数据的函数D、无参函数 52.下列函数定义正确的是()。 A.intadd(intx,inty)B.intadd(intx,inty) ; {{ returnx+y;returnx+y; }} C.voidadd(intx,inty);D.intadd(intx,y) {{ returnx+y;returnx+y; }} 53.下列关于C函数的叙述中正确的是()。 A.函数不能嵌套定义,可以嵌套调用B.函数必须有return C.函数必须有输入变量的语句D.函数必须有形参 54.调用函数时,以下叙述不正确的描述是() A.实参与形参可以共占内存单元B.形参不分配存储单元 C.实参可以是地址D.通常要求实参与形参的类型应一致 55.当调用函数时,实参是一个数组名,则向函数传送的是()。 A.数组的首地址B.数组的长度 C.数组每一个元素的地址D.数组每个元素中的值 56.关于函数,下列说法正确的是: () A.函数的返回值类型就是函数中return语句带回值的类型 B.函数的返回值类型必须和形参的类型一致 C.所有的函数必须有返回值 D.所有的函数必须有scanf和printf语句 57.函数f1()在运行中调用了函数f2(),而f2()有调用了f1(),这种调用称为: () A.递归调用B.地址调用C.直接调用D.值调用 58.设函数f()的原型为voidf(intarray[],intm);主调函数中有声明: inta[10];则下列语句正确的是: ()。 A.f(a,10);B.f(&a[i],i);C.voidf(a,10);D.f(inta[10],int10); 59.若有char*str[5];则其中的str是: () A.指针数组名B.指针变量名C.字符型数组名D.字符型变量名 60.假设有定义: int*p,n;char*q,*g,ch;下列语句不正确的是: () A.p=&n;g=p=&ch;B.p=&n;q=&ch; C.p=&n;g=&ch;D.p=&n;q=&ch;g=q; 61.如果变量已被正确定义,指针p指向x,则*&x等价于()。 A.*pB.&*xC.pD.**p 62.设有定义: inta,*p;下列选项正确的是()。 Ap=&a,*p=23Bp=a=23Cp=&a=23D*p=&a=23 63.设有定义: int*p[4];下列说法正确的是()。 A.p是由4个指针组成的指针数组,每个指针都可以指向一个整型变量 B.p是指向数组的指针,应该指向由4个整型元素组成的数组 C.*p是由4个指针组成的指针数组,每个指针都可以指向一个整型变量 D.*p是指向数组的指针,应该指向由4个整型元素组成的数组 64.若有说明和语句: intc[4][5],(*p)[5];p=c;能正确引用数组元素的是(). A、*(p[0]+2)B、*(p+1)+3C、*(p+3)D、p+1 65.以下函数的功能是(). fun(char*p2,char*p1) {while((*p2=*p1)! ='\0') {p1++;p2++;} } A、将p1所指字符串复制到p2所指内存空间 B、将p1所指字符串的地址赋给指针p2 C、对p1和p2两个指针所指字符串进行比较 D、检查p1和p2两个指针所指字符串中是否有'\0' 66.设有定义: floata,*p;下列选项能使a的值为2.7的是()。 Ap=&a,*p=2.7;B*p=a,*p=52.7; C.p=&a,p=2.7;D.p=a,*p=2.7; 67.设: charstr[]=”computer”;char*p=str;能够输出computer的语句是()。 A、printf(“%s”,p);B、printf(“%c”,*p); C、printf(“%s”,*p);D、printf(“%c”,p); 68.设有定义: float*ft[3];下列说法正确的是()。 A.ft是指针数组,它由3个指向实型数据的指针组成 B.*ft是指针数组,它由3个指向实型数据的指针组成 C.ft是指向含有3个实型数据的指针变量 D、D.*ft是指向含有3个实型数据的指针变量 69.设函数f()的原型为voidf(int*x,intm);主调函数中有声明: inta[10];则下列语句正确的是: () A.voidf(a,10);B.f(&a[0],10);C.f(*a,10);D.f(inta[10],int10); 70.设有定义: (int*p)[3];inta,c[3];则下列语句正确的是: () A.p=c;B.*p=&a;C.p=&c[3];D.p=&a; 71.假设变量已正确定义,指针p指向变量x,则*&x等价于: () A.*pB.&*xC.pD.**p 72.设有定义: inti,a[10],*p;则下列语句合法的是: () A.p=a+5;B.p=a[2];C.p=20;D.p=&(i+5); 73.语句: chars[3]="abc";则执行语句char*p=s;之后,*(p+2)的值是() A.'c'B.'\0'C.'b'D.'b'的地址 74.设有以下说明语句: structstu {inta;floatb;}stutype; 则下面的叙述不正确的是: () A.stutype是用户定义的结构体类型 B.structstu是用户定义的结构体类型 C.struct是定义结构体类型的关键字 D.a和b都是结构体成员名 75.设有结构体定义: structstudent{intnum;charname[20];floatscore;}stu1;则下列语句正确的是: () A.strcpy(stu1.name,”Lilin”);B.stu1.name[]=”Lilin”; C.student.stu1.name[]=”Lilin”;D.strcpy(student.stu1.name,”Lilin”); 76.设有定义: structchild {charname[20];charxb;intage;}child_1,child_2; 能将“Liliang”赋给child_1的变量name的正确语句是() A.strcpy(child_1.name,”Liliang”);B.strcpy(child.name,”Liliang”); C.child.Name=“Liliang”;D.child_1.name=”Liliang”; 77.设有定义: structps{intnum;charname[20];}psA; 下列语句正确的是()。 A.psA.num=12,strcpy(psA.name,"Xiaoli");B.ps.num=12,ps.name="Xiaoli"; C.num=12,name="Xiaoli";D.psA.num=12,psA.name="Xiaoli 78.设有定义: structworker{charname[20];charsex;intage;}work1;则下列语句正确的是: () A.work1.age=34;B.age=34; C.worker.work1.age=34;D.struct.worker.work1.age=34; 79.定义同上题,下列语句正确的是: () A.strcpy(work1.name[],”Liugang”); B.strcpy(name,”Liugang”); C.wor1.name[]=”Liugang”; D.strcpy(work1.name,”Liugang”); 二、填空题: 1.用printf函数在屏幕上显示D: \test\next的字样,应使用语句。 2.设有定义floatx=-56.632256;要在屏幕上显示x=-56.63,应使用语句。 3.已知整型变量n的初值为3,h的初值为1,则执行语句doh=h*n--;while(n);后h的值为。 4.设有语句: chars[]=”Hello,2014.”;在屏幕上输出数组s,可使用C语句(可用你所熟悉的任何一条语句)。 5.设已定义字符型变量c1,c2,c3,则执行语句: scanf(“%c%c%c”,&c1,&c2,&c3);后,输入a,b,c回车后,c1,c2,c3的值分别为。 6.条件表达式语句 y=x<1? x: x>=1&&x<10? 2*x-1: 3*x-11; 的if语句为。 7.能够正确表示y=|a-b|的C语言表达式为。 8.判别字符型变量ch的值是小写字母为真的C语言表达式为。 9.已知整型变量n的初值为3,h的初值为1,则执行语句doh=h*n--;while(n);后h的值为。 10.用PI表示常数3.14159的宏定义为. 11.使字符常量G的值等于9.8的宏定义命令是。 12、当键盘输入为ABCD【回车】时,语句ch=getchar();的值为。 13.设有以下变量定义,并已赋确定的值charw;intx;floaty;doublez;则表达式: w*x+z-y所求得的数据类型为。 14.表示“整数x的绝对值大于6”时值为真的C语言表达式是。 15.已知整型变量a的初值为6,b的初始值为1,则执行语句dob+=a--;while(a);后b的值为。 16.数学函数asin的原型为: doubleasin(doublex);功能是计算arcsin(x)的值。 使用该函数时,应该加上文件包含指令。 17.如果在C程序中要用到库函数中字符串比较函数strcmp,那么在程序前面应该加文件包含命令: ()。 18.设有定义chars1[20]={
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习题