C语言程序设计(黑龙江工程学院)-知到答案、智慧树答案_第1页
C语言程序设计(黑龙江工程学院)-知到答案、智慧树答案_第2页
C语言程序设计(黑龙江工程学院)-知到答案、智慧树答案_第3页
C语言程序设计(黑龙江工程学院)-知到答案、智慧树答案_第4页
C语言程序设计(黑龙江工程学院)-知到答案、智慧树答案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计(黑龙江工程学院)-知到答案、智慧树答案第一章单元测试1、问题:人类通过不同的语言进行交流,人与计算机的交流是通过()来实现的。选项:A:程序设计语言B:自然语言C:文字D:机械操作答案:【程序设计语言】2、问题:高级语言处于程序设计语言发展的第()个阶段。选项:A:三B:二C:四D:一答案:【三】3、问题:C语言的创始人是()。选项:A:肯·汤普逊B:丹尼斯·里奇C:比尔·盖茨D:冯·诺依曼答案:【丹尼斯·里奇】4、问题:C语言源程序中main函数()。选项:A:可有多个B:可以有一个C:有且只能有一个D:可有可无答案:【有且只能有一个】5、问题:C语言源程序文件扩展名为()。选项:A:cppB:objC:cD:exe答案:【c】6、问题:下列说法中不正确的是()。选项:A:C程序书写时,一个语句可分成几行书写B:C程序书写时,区分大小写字母C:C程序书写时,一行可以写多个语句D:C程序书写时每行必须有行号答案:【C程序书写时每行必须有行号】7、问题:C语言是结构化语言。选项:A:对B:错答案:【对】8、问题:C语言是面向对象语言。选项:A:错B:对答案:【错】9、问题:C语言是面向过程语言。选项:A:错B:对答案:【对】10、问题:开发C语言程序包括编辑源程序、编译、运行三个步骤。选项:A:对B:错答案:【错】第二章单元测试1、问题:表达式:(int)((double)9/2)-9%2的值是_____选项:A:3B:5C:0D:4答案:【3】2、问题:以下选项中关于C语言常量的叙述错误的是_______选项:A:常量分为整型常量、实型常量、字符常量和字符串常量B:所谓常量,是指在程序运行过程中,其值不能被改变的量C:常量可分为数值型常量和非数值型常量D:经常被使用的变量可以定义成常量答案:【经常被使用的变量可以定义成常量】3、问题:以下选项中,能用作用户标识符的是________选项:A:8_8B:voidC:unsignedD:_0_答案:【_0_】4、问题:以下选项中能表示合法常量的是______选项:A:3lfB:1.5E2.0C:‘’D:1,200答案:【‘’】5、问题:按照C语言规定的用户标识符命名规则,不能出现在标识符中的是___________选项:A:下划线B:连接符C:大写字母D:数字字符答案:【连接符】6、问题:以下选项中正确的定义语句是__________选项:A:double,a,b;B:doublea=b=7;C:doublea;b;D:doublea=7,b=7;答案:【doublea=7,b=7;】7、问题:设有定义intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是______选项:A:k+=1B:k++C:k+1D:++k答案:【k++】8、问题:以下叙述中正确的是_____选项:A:字符常量可以参与整数运算B:转义字符用@符号开头C:同一英文字符的大写和小写形式代表的是同一字符常量D:字符变量在定义时不能赋初值答案:【字符常量可以参与整数运算】9、问题:C语言中依据程序编译器的不同,int定义的字节数不同,不短于short,不长于long,一般为2或4个字节。选项:A:对B:错答案:【对】10、问题:C语言的整型常量有二进制、八进制、十进制和十六进制四种表示方式。选项:A:对B:错答案:【错】第三章单元测试1、问题:以下不属于结构化程序设计中基本结构的是_________。选项:A:选择结构B:跳转结构C:顺序结构D:循环结构答案:【跳转结构】2、问题:以下类型的C语句中,不属于简单语句的是_________。选项:A:空语句B:复合语句C:表达式语句D:条件语句答案:【条件语句】3、问题:若int类型数据占2个字节,则下列语句的输出结果为________。intk=-1;printf(“%d,%u,%o”,k,k,k);选项:A:-1,32767,-177777B:-1,-1,-1C:-1,65535,177777D:-1,32768,177777答案:【-1,65535,177777】4、问题:下列程序的输出是_______。#includemain(){printf(“%d”,null);}选项:A:变量无定义B:0C:1D:-1答案:【变量无定义】5、问题:以下关于结构化程序设计中的三种基本结构,叙述不正确的是________。选项:A:循环结构中,需先对循环条件进行判断,条件成立才执行循环体。B:选择结构也叫做分支结构,在该结构下只能选择程序的一条分支来执行,同时该分支可以为空。C:顺序结构是最简单的一种基本结构。D:每种基本结构均有唯一的一个入口和唯一的一个出口。答案:【循环结构中,需先对循环条件进行判断,条件成立才执行循环体。】6、问题:在scanf函数中,附加格式字符h表示输入短整型数据,不能与其共同使用的格式字符是_______。选项:A:dB:oC:xD:f答案:【f】7、问题:printf(“%5.3s,%-5.3s,%2.3s”,“China”,“China”,“China”);以上语句的运行结果是_______。选项:A:Chi□□,□□Chi,ChiB:□□Chi,Chi□□,ChC:□□Chi,Chi□□,ChiD:□□ina,ina□□,ina答案:【□□Chi,Chi□□,Chi】8、问题:floata=1234.56;printf(“%e,%9e,%9.1e”,a,a,a);以上语句的运行结果是_______。选项:A:1.234560e+003,1.234560e+003,□1.2e+003B:1.234560e+3,1.234560e+3,□□□1.2e+3C:1.234560e+003,1.234560e+003,□□1.2e+003D:1.23456e+003,1.23456e+003,□1.2e+003答案:【1.234560e+003,1.234560e+003,□1.2e+003】9、问题:scanf(“%3d%*3d%3d”,&x,&y);当输入数据3456789012时,x,y的取值分别为________。选项:A:x=345,y=678B:x=345,y=901C:x=456,y=012D:x=789,y=012答案:【x=345,y=901】10、问题:以下字符输入输出函数中,用于输入单个字符的函数是gets()。选项:A:错B:对答案:【错】第四章单元测试1、问题:已知语句“if(w)…;else…;”,与表达式w的等价表示是:()选项:A:w!=0B:w==1C:w!=1D:w==0答案:【w!=0】2、问题:设为int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()。选项:A:x<=yB:x||y+z&&y-zC:'x'&&'y'D:!((x答案:【!((x】3、问题:表示算术关系12<=x<=y的C语言表达式为()选项:A:(12<=x)&(x<=y)B:(12<=x)|(x<=y)C:(12<=x)||(x<=y)D:(12<=x)&&(x<=y)答案:【(12<=x)&&(x<=y)】4、问题:判断char型变量ch是否为大写字母的正确表达式是()选项:ch)AND(‘Z’>=ch)答案:【】5、问题:若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()选项:A:!(A%2)B:A%2==1C:!(A%2==0)D:A%2答案:【!(A%2)】6、问题:设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()选项:A:4B:3C:1D:2答案:【2】7、问题:以下程序的运行结果是()main(){intm=5;if(m++>5)printf(“%d\n”,m);else;printf(“%d\n”,m--);}选项:A:7B:6C:4D:5答案:【6】81、问题:若运行时给变量x输入12,则以下程序的运行结果是()main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-2;printf(“%d\n”,y);}选项:A:0B:4C:3D:2答案:【0】9、问题:main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()选项:A:2,2,2B:2,2,1C:1,1,2D:2,2,3答案:【2,2,2】10、问题:逻辑运算符两侧运算对象的数据类型可以是任何类型的数据。选项:A:对B:错答案:【对】第五章单元测试1、问题:以下程序的运行结果是()main(){inta=2,b=-1,c=2;if(a选项:A:3B:2C:0D:13答案:【2】2、问题:main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d",a,b);}运行改程序后a和b的值分别为()选项:A:2,2B:2,1C:1,1D:1,0答案:【2,1】3、问题:有以下程序#includemain(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf(“%d\n”,b);}程序运行后的输出结果是()选项:A:2B:1C:0D:3答案:【0】45746、问题:若整数x分别等于9、8、100、3、6、79,则以下程序段运行后屏幕显示是什么??????switch(x/10)?????{?case?6:???????case?7:?????????printf("Pass\n");??break;???????case?8:?????????printf("Good\n");??break;???????case?9:???????case?10:????????printf("VeryGood\n");??break;???????default:????????printf("Fail\n");?????}?1.x等于?95时,程序段运行后屏幕上显示(()????????????????2.?x等于?87时,程序段运行后屏幕上显示?()??????3.x等于100时,程序段运行后屏幕上显示)?????????????????4.x等于?43时,程序段运行后屏幕上显示?()????5.x等于?66时,程序段运行后屏幕上显示???()?6.x等于?79时,程序段运行后屏幕上显示?()选项:A:BCDCDAB:CBCDAAC:ABCDAAD:DCCDAC答案:【CBCDAA】5、问题:分析以下程序,?下列说法正确的是?()?main()???{?int?x=5,a=0,b=0;?if(x=a+b)?printf("*?*?*?*");?else???printf("#?#?#?#");???}?选项:A:输出#?#?#?#B:输出*?*?*?*C:通过编译,但不能连接D:有语法错,不能通过编译答案:【输出#?#?#?#】6、问题:有如下程序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);}该程序的输出结果是()选项:A:0.500000B:1.000000C:0.250000D:0.000000答案:【0.500000】7、问题:以下不正确的if语句形式是()选项:A:if(x==y)x+=y;B:if(x!=y)scanf("%d",&x)elsescanf("%d",&y);C:if(x>y&&x!=y);D:if(x答案:【if(x!=y)scanf("%d",&x)elsescanf("%d",&y);】8、问题:inta=3,b=2,c=1;if(a>b>c)a=b;elsea=c;则a的值是()选项:A:2B:0C:1D:3答案:【1】91、问题:有以下程序main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c->=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出结果是()选项:A:3B:2C:4D:编译时出错答案:【3】10、问题:C语言的if语句嵌套时,if与else的配对关系是:每个else总是与它上面的if配对。选项:A:错B:对答案:【错】第六章单元测试1、问题:以下叙述中正确的是________。选项:A:continue语句的作用是:在执行完本次循环体中剩余语句后,终止循环B:只能在循环体内和switch语句体内使用break语句C:在while语句和do-while语句中无法使用continue语句D:当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并终止循环答案:【只能在循环体内和switch语句体内使用break语句】2、问题:以下不构成无限循环的语句或者语句组是_________。选项:A:n=10;while(n);{n--;}B:for(n=0,i=1;;i++)n+=i;C:n=0;do{++n;}while(n<=0);D:n=0;while(1){n++;}答案:【n=0;do{++n;}while(n<=0);】3、问题:下列语句中,有语法错误,不能编译的是_____。选项:A:do2;while(a==b);B:while(x=y)5;C:dox++while(x==10);D:while(0);答案:【dox++while(x==10);】4、问题:以下程序段中,while循环执行的次数是________。intk=0;while(k=1){k++;}选项:A:执行一次B:有语法错误,不能执行C:无限次D:一次也不执行答案:【无限次】5、问题:以下程序段执行后,输出结果是inti,sum=0;for(i=1;i<6;i++){sum+=i;}printf("%d",sum);选项:A:0B:不确定C:14D:15答案:【15】6、问题:循环语句“for(x=0,y=0;(y!=123))||(x<4);x++);”的循环次数为________。选项:A:4次B:不确定C:3次D:无限次答案:【无限次】7、问题:下述程序代码段输出的结果是________。for(k=1;k<10;k++);printf("k=%d,k=%o,k=%x",k,k,k);选项:B:k=10,k=12,k=13答案:【】85、问题:以下程序段中,while循环的循环次数是________。inti=0;while(i<10){if(i<1){continue;}if(i==){break;}i++;}选项:A:死循环B:6C:1D:10答案:【死循环】9、问题:对于“for(表达式1;表达式2;表达式3)循环体”,当表达式2的值为真时,会重复执行表达式1,循环体和表达式3。选项:A:对B:错答案:【错】10、问题:在循环语句“do语句while(条件);”中,当条件为0时结束循环。选项:A:对B:错答案:【对】第七章单元测试1_、问题:程序功能:输入n的值(n<10),计算1!+2!+3!+......+n!,并输出计算结果。程序中空白处应该填_______。#includeintmain(){inti,n;longsum=0,fac=1;//fac存储每个加项(阶乘)的值printf("请输入n的值:");scanf("%d",&n);for(i=1;i<=n;i++){___________//后一加项与前一加项的关系sum=sum+fac;}printf("和为%ld",sum);return0;}选项:A:fac++;B:sum=sum*i;C:fac=fac+sum;D:fac=fac*i;答案:【fac=fac*i;】2、问题:若有整型变量i,j,则以下程序段中内循环体“printf("ok");”的循环次数为________。for(i=5;i;i--){for(j=0;j<4;j++){printf("ok");}}选项:A:30B:20C:24D:25答案:【20】3、问题:以下程序段的输出结果是________。inti=0,a=0;while(i<20){for(;;){if(i%10==0){break;}else{i--;}}i+=a+=i;}printf("%d",a);选项:A:21B:32D:33答案:【32】40、问题:假定a和b为int型变量,则执行以下语句后b的值为________。a=1;b=10;do{b-=a;a++;}while(b--<);选项:A:8B:9C:-1D:-2答案:【8】5、问题:设x和y均为int型变量,则执行下面的循环后y的值为for(y=1,x=1;y<=50;y++){if(x>=10){break;}if(x%2==1){x+=5;continue;}x-=3;}选项:A:4B:2C:8D:6答案:【6】6、问题:设i,j,k均为整型变量,则执行如下语句后,k的值为________。for(i=0,j=10;i<=j;i++,j--){k=i+j;}选项:A:8C:10D:9答案:【10】71、问题:以下程序段的输出结果是________。inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case:case2:a+=3;default:a+=5;}}printf("%d",a);选项:A:10B:31C:20D:13答案:【31】8、问题:以下程序段运行时,如果从键盘输入1298再回车,则输出结果为intn1,n2;scanf("%d",&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf("%d",n1);}选项:A:1B:1298C:9D:8921答案:【8921】9、问题:以下程序段的输出结果是________。inti=10,j=0;do{j=j+i;i--;}while(i>2);printf("%d",j);选项:A:25B:48C:52D:54答案:【52】10、问题:for(;;)和while(1)构成的都是无限循环。选项:A:对B:错答案:【对】第八章单元测试1、问题:如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};,则数组a的大小是________。选项:A:8B:不定D:10答案:【10】2、问题:有如下说明:inta[10]={0,1,2,3,4,5,6,7,8,9};则数值不为9的表达式是________。选项:A:a[8]B:a[10-1]C:a[9]-a[0]D:a[9]-0答案:【a[8]】3、问题:下列程序执行后的输出结果是__________。main(){inta,b[5];a=0;b[0]=3;printf("%d,%d",b[0],b[1]);}选项:A:3,0B:30C:0,3D:3,不定值答案:【3,不定值】4、问题:以下程序输出的结果是________。#includemain(){inta[]={1,2,3,4,5},i,j,s=0;for(i=0;i<5;i++)s=s*10+a[i];printf("s=%d",s);}选项:A:s=54321B:s=1,2,3,4,5C:s=12345D:s=5,4,3,2,1答案:【s=12345】5、问题:执行下面的程序段后,变量k中的值为__________。intk=3,s[2];s[0]=k;k=s[1]*10;选项:A:30B:33C:不定值D:10答案:【不定值】6、问题:假定一个int型变量占用四个字节,若有定义:intx[10]={0,2,4};则数组x在内存中所占字节数是。选项:A:3B:6C:40D:10答案:【40】7、问题:inta[3]定义了一个整型数组,它的3个元素是a[1],a[2]和a[3]。选项:A:对B:错答案:【错】8、问题:可以在定义数组时只给一部分数组元素赋值。选项:A:错B:对答案:【对】9、问题:对数组元素赋予的初值可以依次放在一对圆括号内。选项:A:对B:错答案:【错】10、问题:inta[3]定义了一个整型数组,它的3个元素是a[0],a[1]和a[2]。选项:A:错B:对答案:【对】第九章单元测试1、问题:在定义intn[5][6];后,若认为n[0][0]为第1个元素,则第10个元素是________。选项:A:n[2][5]B:n[2][4]C:n[1][3]D:n[1][4]答案:【n[1][3]】2、问题:下列二维数组初始化语句中,正确的是__________。选项:A:inta[][]={{9,3,1},{8,4,2},{3,5,7}};B:floata[3][]={{1,2,3},{4,5,6},{7,8,9}};C:inta[][3]={8,0,7,0,3,l,2,5};D:floata[2][3]={{l,2},{3,4},{5,6}};答案:【inta[][3]={8,0,7,0,3,l,2,5};】3、问题:若定义chara[]="Hello!";则strlen(a)、sizeof(a)的值分别为。选项:A:67B:78C:77D:76答案:【78】4[、问题:以下程序的输出结果是()。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d",a[0]3],a[1][2],a[2][1],a[3][0]);}选项:A:1470B:0650C:输出值不定D:5430答案:【0650】5、问题:若有定义:inta[2][4];,则引用数组元素正确的是。选项:A:a[0][4]B:a[2][2]C:a[0][3]D:a[2][2+1]答案:【a[0][3]】6、问题:若定义一个名为s且初值为"123"的字符数组,则下列定义错误的是________。选项:A:chars[]={’1','2','3',''};B:chars[4]={'1','2','3'};C:chars[]={"123"};D:chars[]={‘123’};答案:【chars[]={‘123’};】7、问题:设有定义:chars[12]="string";则printf("%d",strlen(s));的输出结果是________。选项:B:7C:12D:6答案:【6】8、问题:语句printf("%d",strlen("abso12\"));的输出结果是________。选项:B:10C:8D:9答案:【9】9、问题:在用字符数组来处理字符串时,应始终保证数组的长度大于字符串的实际长度。选项:A:错B:对答案:【对】10、问题:使用字符串连接函数strcat(字符数组1,字符数组2)时,字符数组1要定义足够的长度,才能装入全部被连接的字符串,而使用strcpy(字符数组1,字符数组2)函数时,无需考虑字符数组1的长度问题。选项:A:错B:对答案:【对】第十章单元测试1、问题:在C语言中,若定义函数时对函数类型未加显式说明,则函数的隐含类型为_______。选项:A:voidB:charC:doubleD:int答案:【int】2、问题:在C语言的函数调用中,如果普通变量作为函数的参数,则调用函数时_______。选项:A:由计算机系统确定是否共用一个存储单元B:实参和形参分别占用一个独立的存储单元C:实参和形参共用一个存储单元D:由用户确定是否共用一个存储单元答案:【实参和形参分别占用一个独立的存储单元】3_、问题:在C语言的函数调用中,如果普通变量作为函数的实参,则它与对应形参之间的传递方式是______。选项:A:由实参传递给形参,再由形参传递给实参B:地址传递C:单向值传递D:由用户指定传递方式答案:【单向值传递】4、问题:下面对函数的叙述,正确的是_______。选项:A:函数中没有return语句,说明函数不带值B:函数不能嵌套定义C:函数中的返回值,是通过return语句获得的D:函数中无论是否有return语句,都能返回正确值答案:【函数中的返回值,是通过return语句获得的】5、问题:在C语言中规定,函数返回值的类型由_______。选项:A:return语句中的表达式类型决定B:调用该函数的主调函数决定C:定义该函数时所指定的函数类型决定D:调用该函数时系统临时决定答案:【定义该函数时所指定的函数类型决定】6、问题:函数调用在程序中出现的位置一般有3种方式,下面叙述中错误的是_______。选项:A:函数调用可以作为独立的语句存在B:函数调用可以作为一个函数的实参C:函数调用可以出现在表达式中D:函数调用可以作为一个函数的形参答案:【函数调用可以作为一个函数的形参】7、问题:下面程序的输出结果是_______。#includeintmain(void){doublex;inta=3,b=4,c=5;x=func(a,b,c);printf("%f",x);return0;}{doublet;t=x%y*z;returnt;}选项:A:3B:3.000000C:15D:15.000000答案:【15.000000】8、问题:在C语言中,函数调用语句function((a,b,c),(d,e));中参数的个数是_______。选项:A:1B:5C:2D:4答案:【2】9、问题:在C语言中,程序的基本单位是文件。选项:A:错B:对答案:【错】10、问题:在C语言中,程序进行编译的单位是文件。选项:A:错B:对答案:【对】第十一章单元测试1、问题:下面叙述中不正确的是_______。选项:A:在一个函数中定义的变量只在本函数范围内有效B:在不同的函数中可以使用相同名字的变量,它们在内存中占用不同的单元C:函数中的形参是函数自己的局部变量D:在一个函数内的复合语句中定义的变量只在本函数范围内有效答案:【在一个函数内的复合语句中定义的变量只在本函数范围内有效】2、问题:下面叙述中不正确的是_______。选项:A:在C语言中,不能在一个函数的内部再定义函数B:函数的类型可以是整型、实型、字符型,但不可以是指针型C:在没有声明函数返回值类型时,函数返回值的类型默认为intD:函数可以没有形参,可是函数名后的一对括号却不能省略答案:【函数的类型可以是整型、实型、字符型,但不可以是指针型】3、问题:下面程序的输出结果是_______。#includeintfunction(inta,intb);intmain(void){intx=5,y=3,s;s=function(x,y);printf("%d",s);return0;}intfunction(inta,intb){returna*a-b*b;}选项:A:16B:32C:2D:8答案:【16】4}、问题:下面程序的输出结果是_______。#includelongfunc(intn);intmain(void){printf("%ld",func(5));return0;longfunc(intn){if(n>2){returnfunc(n-1)+func(n-2);}else{return1;}}选项:A:7B:6C:5D:8答案:【5】5、问题:下面程序的输出结果是_______。#includeintfunc(void);intmain(void){inti,s;for(i=0;i<4;i++)s=func();printf("%d",s);return0;}intfunc(void){staticintx=6;x++;returnx;}选项:A:9B:7C:8D:10答案:【10】6、问题:下面程序中应该补充(填写在横线位置)的代码是_______。#includeintmax(intx,inty);//函数功能:求两数中的较大数intmain(void){inta,b,c;scanf("%d,%d",&a,&b);c=__________________;printf("maxis%d",c);return0;intmax(intx,inty){intz;if(x>y)z=x;elsez=y;returnz;}}选项:A:max(x,y)B:max(a,b)C:intmax(inta,intb)D:max(&a,&b);答案:【max(a,b)】7_、问题:下面程序中应该补充(填写在横线位置)的代码中,有错的是#include_____________________________intmain(void){inta,b,c;scanf("%d,%d",&a,&b);c=min(a,b);printf("minis%d",c);return0;}//函数功能:求两数中的较大数intmin(intx,inty){intz;z=x<y?x:y;returnz;}选项:A:intmin(intx,inty)B:intmin(intx,inty);C:min(intx,inty);D:intmin(int,int);答案:【intmin(intx,inty);】8、问题:下面程序的输出结果是_______。#includevoidincrement(void);intmain(void){increment();increment();increment();return0;}voidincrement(void){intx=0;x+=1;printf("%d",x);}选项:A:123C:1D:333答案:【】9、问题:在函数调用中,若funA调用了函数funB,函数funB又调用了函数funA,则这是一个不合法的调用。选项:A:错B:对答案:【错】10、问题:在一个源程序文件中定义的全局变量的作用域为从定义该变量的位置开始至本文件结束。选项:A:对B:错答案:【对】第十二章单元测试1、问题:若有定义inta[]={2,4,6,8,10},p=a;a的值是数组首地址,则*(p+1)的值是4。选项:A:错B:对答案:【对】2、问题:关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减。选项:A:错B:对答案:【错】3、问题:已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是。选项:A:ptr1=ptr2B:ptr2=kC:k=*ptr1*(*ptr2)D:k=*ptr1+*ptr2答案:【ptr2=k】4、问题:若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是。选项:A:&*a,&a,*pointB:a,point,*&aC:&a,&*point,pointD:*&point,*point,&a答案:【&a,&*point,point】5、问题:若有说明;int*p,m=5,n;以下正确的程序段的是。选项:A:p=&n;*p=m;B:p=&n;scanf("%d",*p);C:p=&n;scanf("%d",&p);D:scanf("%d",&n);*p=n;答案:【p=&n;*p=m;】6、问题:若已定义chars[10];则在下面表达式中不表示s[1]的地址是。选项:A:s++B:&s[1]C:&s[0]+1D:s+1答案:【s++】7、问题:若有定义:inta[5],*p=a;则对a数组元素的正确引用是。选项:A:*(a+2)B:a+2C:*(p+5)D:*&a[5]答案:【*(a+2)】8、问题:有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值。选项:A:5B:9C:8D:6答案:【9】9、问题:若有以下定义,inta[10],*p=a;则p+5表示。选项:A:元素a[6]的地址B:元素a[5]的地址C:元素a[5]的值D:元素a[6]的值答案:【元素a[5]的地址】10、问题:设已有定义:inta[10]={15,12,7,31,47,20,16,28,13,19},*p;下列语句中正确的是。选项:A:for(p=a;aB:for(p=a,a=a+10;pC:for(p=a;p<(a+10);p++);D:for(p=a;a<(p+10);a++);答案:【for(p=a;p<(a+10);p++);】第十三章单元测试1、问题:指针数组的每个元素都是一个指针变量。选项:A:对B:错答案:【对】2、问题:可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。选项:A:对B:错答案:【对】3、问题:下面程序段的运行结果是。chara[]=”language”,*p;p=a;while(*p!=’u’){printf(“%c”,*p-32);p++;}选项:A:langUAGEB:languageC:LANGD:LANGUAGE答案:【LANG】4、问题:设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是。选项:A:c=*p1+*p2;B:p1=p2C:p2=cD:c=*p1*(*p2);答案:【p2=c】5、问题:已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是。选项:A:*p=max(a,b);B:p=max(a,b);C:*p=max;D:p=max;答案:【p=max;】6、问题:若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是。选项:A:*pmax(a,b);B:(*p)max(a,b);C:(*p)(a,b);D:*p(a,b);答案:【(*p)(a,b);】7、问题:下面选项属于函数指针的是。选项:A:(int*)p(int,int)B:两者都不是C:int*p(int,int)D:两者都是答案:【两者都不是】8、问题:若有以下函数首部intfun(doublex[10],int*n),则下面针对此函数的函数声明语句中正确的是。选项:A:intfun(double*x,intn);B:intfun(double*,int*);C:intfun(doublex,int*n);D:intfun(double,int);答案:【intfun(double*,int*);】9、问题:已定义以下函数fun(int*p){return*p;}该函数的返回值是。选项:A:形参p中存放的值B:形参p的地址值C:形参p所指存储单元中的值D:不确定的值答案:【形参p所指存储单元中的值】10、问题:以下正确的程序段是。选项:A:charstr[20];scanf("%s",&str[2]);B:char*p;scanf("%s",p);C:charstr[20],*p=str;scanf("%s",p[2]);D:charstr[20];scanf("%s",&str);答案:【charstr[20];scanf("%s",&str[2]);】第十四章单元测试1、问题:预处理命令的前面必须加一个“#”号。选项:A:错B:对答案:【对】2、问题:宏定义不是C语句,不必在行末尾加分号。选项:A:对B:错答案:【对】3、问题:以下程序的输出结果为。??#define?PT?5.5??#define?S(x)?PT*x*x??main(){int?a=1,b=2;????printf(“%4.1f”,S(a+b));??}?选项:A:33.5B:9.5C:12.5D:12.0答案:【9.5】4、问题:以下程序的运行结果是。#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti=10,j=15,k;k=10*MIN(i,j);printf(“%d”,k);}选项:A:15B:10C:100D:150答案:【15】5、问题:若有以下宏定义如下:#defineN2#defineY(n)((N+1)*n)则执行语句z=2*(N+Y(5));后的结果是。选项:A:z无定值B:z=70C:z=34D:语句有错误答案:【z=34】6、问题:C语言的编译系统对宏命令的处理是。选项:A:在对源程序中其它成份正式编译之前进行的B:和C程序中的其它语句同时进行编译的C:在程序连接时进行的D:在程序运行时进行的答案:【在对源程序中其它成份正式编译之前进行的】7、问题:以下有关宏替换的叙述不正确的是。选项:A:宏替换只是字符替换B:宏名无类型C:宏替换不占用运行时间D:宏名必须用大写字母表示答案:【宏名必须用大写字母表示】8、问题:在宏定义#definePI3.14159中,用宏名PI代替一个。选项:A:字符串B:单精度数C:常量D:双精度数答案:【字符串】9、问题:请读程序:#defineADD(x)x+xmain(){intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的运行结果是。选项:A:sum=9B:sum=10C:sum=18D:sum=12答案:【sum=10】10、问题:以下叙述中不正确的是。选项:A:C程序在执行过程中对预处理命令行进行处理B:在程序中凡是以#号开始的语句行都是预处理命令行C:以下是正确的宏定义#defineIBM_PCD:预处理命令行都必须以#号开始答案:【C程序在执行过程中对预处理命令行进行处理】第十五章单元测试1、问题:下面结构体的定义语句中,错误的是()。选项:A:structord{intx;inty;intz;};structorda;B:struct{intx;inty;intz;}a;C:structord{intx;inty;intz;}a;D:structord{intx;inty;intz;}structorda;答案:【structord{intx;inty;intz;}structorda;】2、问题:有以下的结构体变量定义语句:structstudent{intnum;charname[9];}stu;则下列叙述中错误的是()。选项:A:结构体名为studentB:struct是C的关键字C:num是结构体成员名D:结构体类型名为stu答案:【结构体类型名为stu】3、问题:设有定义:struct{charmark[12];intnum1;doublenum2;}t1,t2;若变量均已正确赋初值,则以下语句中错误的是()。选项:A:t2.num2=t1.num2;B:t2.num1=t1.num1;C:t1=t2;D:t2.mark=t1.mark;答案:【t1=t2;】4、问题:若有如下说明语句,则下面叙述中不正确的是()。structstudent{longnum;charname[20];charsex;intage;}stu;选项:A:structstudent是结构体类型B:num,name,sex,age都是结构体成员名C:stu是结构体类型名D:struct是结构体类型关键字答案:【stu是结构体类型名】5、问题:若有如下说明语句,则定义了()。unionstudent{longnum;charname[20];charsex;intage;};选项:A:结构体类型B:结构体变量C:共用体类型D:共用体变量答案:【共用体类型】6、问题:当定义一个结构体变量时,系统分配给它的内存空间字节数是()。选项:A:结构体中最后一个成员所需内存字节数B:结构体中第一个成员所需内存字节数C:各成员所需内存字节数的总和D:成员中占内存字节数最大的答案:【各成员所需内存字节数的总和】7、问题:以下程序在VC6.0下运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论