《C语言知识考试-.doc》由会员分享,可在线阅读,更多相关《C语言知识考试-.doc(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.*一、填空 共50题 (共计50分)第1题 题号:345C语言中,数组名是一个不可变的【1】量,不能对它进行加减和赋值运算.答案:地址第2题 题号:346C程序在执行过程中,不检查数组下标是否【1】.答案:越界第3题 题号:347若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组可用的最小下标值是【1】.答案:0第4题 题号:348若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组可用的最大下标值是【1】.答案:9第5题 题号:349若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7
2、5 1 3该数组中下标最大的元素的值是【1】.答案:3第6题 题号:350若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组的元素中,数值最小的元素的下标值是【1】.答案:8第7题 题号:351若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组的元素中,数值最大的元素的下标值是【1】.答案:2第8题 题号:352C语言中,二维数组在内存中的存放方式为按【1】优先存放.答案:行第9题 题号:353定义int a23;表示数组a中的元素个数是【1】个.答案:6第10题 题号:354字符串的结束标志是【1】.答案:0
3、第11题 题号:355求字符串长度的库函数是【1】,只写函数名即可.答案:strlen第12题 题号:356复制字符串的库函数是【1】,只写函数名即可.答案:strcpy第13题 题号:357字符串比较的库函数是【1】,只写函数名即可.答案:strcmp第14题 题号:358合并字符串的库函数是【1】,只写函数名即可.答案:strcat第15题 题号:359static int a33=1,2,3,4,5,6,7,8,9;其中a12的值为【1】.答案:6第16题 题号:360按内存排列顺序, 数组char a2中的所有元素是a1和【1】.答案:a0第17题 题号:361函数调用时的实参和形参之
4、间的数据是单向的【1】传递.答案:值第18题 题号:362C语言中,【1】是程序的基本组成部分.答案:函数第19题 题号:363预处理命令行都必须以【1】号开始.答案:#第20题 题号:364如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:void第21题 题号:365结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体【1】,再说明结构体变量.答案:类型第22题 题号:367将数组a的首地址赋给指针变量p的语句是【1】.答案:p=a;第23题 题号:368将函数funl 的入口地址赋给指针变量p的语句是【1】.答案:p=funl;第24题 题号:369调用 fopen
5、函数打开一文本文件,在使用方式这一项中,为输出而打开需填入【1】.答案:w第25题 题号:370调用 fopen 函数打开一文本文件,在使用方式这一项中,为输入而打开需填入【1】.答案:r第26题 题号:371调用 fopen 函数打开一文本文件,在使用方式这一项中,为追加而打开需填入【1】.答案:a第27题 题号:372C语言中调用【1】函数来打开文件.答案: fopen第28题 题号:373C语言中调用【1】函数来关闭文件.答案:fclose第29题 题号:374C语言把文件看作是一个【1】的序列.答案:字符第30题 题号:375若有定义:char s =china;则Turbo C系统为
6、数组s开辟【1】个字节的内存单元.答案:6第31题 题号:376函数的【1】调用是一个函数直接或间接地调用它自身.答案:递归第32题 题号:377函数调用语句func(e1,e2),(e3,e4,e5)中含有【1】个实参.答案:2第33题 题号:378C语言源程序的基本单位是【1】.答案:函数第34题 题号:379假设变量a,b均为整型,表达式(a=5,b=2,ab?a+:b+,a+b)的值是【1】.答案:8第35题 题号:380设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】.答案:1第36题 题号:381语句:x+; +x; x=x+1; x=l+x;执行后都
7、使变量x中的值增1,请写出一条同一功能的赋值语句【1】.答案:x+=1第37题 题号:382程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.答案:0第38题 题号:383函数的定义不可以嵌套,但函数的调用【1】嵌套.答案:可以第39题 题号:384设a取二进制数00101101,若想通过ab运算使a的高4位取反,低4位不变,则b的二进制数是【1】.答案:11110000第40题 题号:385设char a,b;若想通过a& b运算保留a的第1位和第6位的值,则b的二进制数是【1】.答案:10000100第41题 题号:386若 char w,int x,flo
8、at y,double z;则表达式w*x+z-y的结果为【1】类型.答案: double第42题 题号:387若int x=6;则x+=x-=x*x表达式最后x的值是【1】.答案:-60第43题 题号:388设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【1】.for(i=0,j=10;i=j;i+,j-)k=i+j;答案:10第44题 题号:389设有以下定义的语句:int a32=10,20,30,40,50,60, (*p)2;p=a;则 *(*(p+2)+1)值为【1】.答案:60第45题 题号:390若有定义:int a=10,b=9,c=8;接着顺序执行下列语
9、句后,变量b中的值是 【1】 .c=(a-=(b-5);c=(a%11)+(b=3);答案:3第46题 题号:391若输入字符串:abcde,则以下while循环体将执行 【1】 次.While(ch=getchar()=e) printf(*);答案:0第47题 题号:392设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 【1】 .Struct stud char num6;int s4;double ave; a,*p;答案:22第48题 题号:393设c语言中,int类型数据占2个字节,则long类型数据占【1】个字节,short类型数据占【2】个字节.答案:4 2第49题
10、题号:394执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf(%d %c,c1,c2);答案:97 b第50题 题号:395执行下列语句的结果是【1】,a=3;printf(%d,+a);printf(%d,a+);答案:4,4第1题 题号:1257若s0,执行循环语句for(i=1; i=10; i=i+3) s=s+i; 后,i的值为【1】。答案:13第2题 题号:397设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为【1】.答案:2.5第3题 题号:327表达式18 & 53 的值是【1】.答案:1第4题 题号
11、:1265下列函数输出一行字符:先输出kb个空格,再输出n个指定字符(由实参指定)。请根据题意,将程序补充完整。 #include void print( 【1】 ) int i; for(i = 1; i = kb; i+) 【2】 for (【3】 ) printf(%c, zf); 答案:int kb,int n,char zfprintf( );i= 1;i=n;i+i=1;i=n;i=i+1第5题 题号:400以下程序的输出结果为【1】, #include stdio.h main()int a=010,j=10;printf(%d,%dn,+a,j-);答案:9,10第6题 题号:
12、401以下程序的输出结果为【1】, #include stdio.h main()int a;for(a=0;ay?+x:+y的值是【1】.答案:6第8题 题号:403设a=3,b=4,c=5,则表达式!(a+b)+c-1&b+c/2的值为【1】.答案:1第9题 题号:404设a=3,b=4,c=4,则表达式a+bc&b=c&a|b+c&b=c的值为【1】.答案:1第10题 题号:405下列程序的运行结果是【1】,main()unsigned x1; int b=-1;x1=b;printf(%u,x1);答案:65535第11题 题号:406x=5,y=8时,c语言表达式5-2=x-1278
13、的值是【1】.答案:0第13题 题号:408c语言表达式!(4=6)&(3=0); 答案:3第39题 题号:434设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&x3;x+) scanf (%d,&y);答案:3第40题 题号:435若有以下定义和语句: int a4=0,1,2,3,*p; p=&a2; 则*-p的值是【1】.答案:1第41题 题号:436执行以下程序段后, s的值是【1】int a=5,3,7,2,1,5,3,10,s=0,k; for(k=0;k8;k+=2) s+=*(a+k);答案:16第
14、42题 题号:437在C语言中,最大整型数是【1】.答案:32767第43题 题号:438在C语言中,最小整型数是【1】.答案:-32768第44题 题号:439若有定义:int a32=2,4,6,8,10,12;,则*(a1+1)的值是【1】.答案:8第45题 题号:440若有以下定义和语句: int a5=1,3,5,7,9,*p; p=&a2; 则+(*p)的值是【1】.答案:6第46题 题号:441表达式 i+ 相当于表达式i=【1】.答案:i+1第47题 题号:442已知a=13,b=6,a/b的十进制数值为【1】.答案:2第48题 题号:443已知a=13,b=6, a&b的十进
15、制数值为【1】.答案:4第49题 题号:444已知a=13,b=6, !a的十进制数值为【1】.答案:0第50题 题号:445执行下列语句后,b 的十进制值是【1】. int x=240,y=15,b; char z=A; b=( x & y ) & ( z a );答案:1二、判断 共12题 (共计12分)第1题 题号:217char *p=girl;的含义是定义字符型指针变量p,p的值是字符串girl。答案:N第2题 题号:218用fopen(file,r+);打开的文件file可以进行修改。答案:Y第3题 题号:219整数 -32100可以赋值给int型和long int型变量。答案:Y
16、第4题 题号:220若i =3,则printf(%d,-i+);输出的值为 -4。答案:N第5题 题号:221x*=y+8 等价于 x=x*(y+8)。答案:Y第6题 题号:222a=(b=4)+(c=6) 是一个合法的赋值表达式。答案:Y第7题 题号:223C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。答案:Y第8题 题号:224语句 printf(%f%,1.0/3);输出为 0.333333。答案:N第9题 题号:225语句scanf(%7.2f,&a);是一个合法的scanf函数。答案:N第10题 题号:226关系运算符b)=c 的值为真。答案:Y第12题 题号:228
17、C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y第1题 题号:229如果想使一个数组中全部元素的值为0,可以写成 int a10=0*10;答案:N第2题 题号:230int a34=1,5,9; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0。答案:Y第3题 题号:231char c=Very Good; 是一个合法的为字符串数组赋值的语句。答案:Y第4题 题号:232如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。答案:Y第5题 题号:233进行宏定义时,宏名必须使用大写字母表示。答案:N第6题 题号:234若有 # define S(a,b)
18、a*b 则语句 area=S(3,2); area的值为6。答案:Y第7题 题号:235共同体变量所占的内存长度等于最长的成员的长度。答案:Y第8题 题号:236若有说明int c;则while(c=getchar();是正确的C语句。答案:Y第9题 题号:237int i,*p=&i;是正确的C说明。答案:Y第10题 题号:2387&3+12的值是15。答案:N第11题 题号:239若有int =10, j=0;则执行完语句if (j=0)+ +; else - -; 的值为11。答案:N第12题 题号:240若有 int i=10,j=2;则执行完i*=j+8;后的值为28。答案:N三、单
19、项选择 共100题 (共计100分)第1题 题号:671若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是(C)。A:int p=&x;B:int *p=x;C:int *p=&x;D:*p=*x;第2题 题号:672关于指针概念说法不正确的是(D)。A:一个指针变量只能指向同一类型变量B:一个变量的地址称为该变量的指针C:只有同一类型变量的地址才能放到指向该类型变量的指针变量之中D:指针变量可以由整数赋,不能用浮点赋第3题 设有说明int (*ptr)M;其中标识符ptr是(C)。A:M个指向整型变量的指针B:指向M个整型变量的函数指针C:一个指向具有M个整型元素的一维数组的指
20、针D:具有M个指针元素的一维指针数组,每个元素都只能指向整型量第4题 题号:674下面选择中正确的赋值语句是(设char a5,*p=a;)(A)。A:p=abcd;B:a=abcd;C:*p=abcd;D:*a=abcd;第5题 题号:675具有相同类型的指针变量p与数组a,不能进行的操作是(D)。A:p=a;B:*p=a0;C:p=&a0;D:p=&a;第6题 题号:677若有下列定义和语句,则对a数组元素的非法引用是(B)。 int a23, (*pt)3; pt=a;A:pt00B:*(pt+1)2C:*(pt1+2)D:*(a0+2第7题 题号:706double x;scanf(%
21、lf,&x);不可以赋值给x变量的常量是(D)。A:123B:100000C:AD:abc第8题 题号:678若有下列定义,则对a数组元素地址的正确引用是(C)。 int a5,*p=a;A:*(p+5)B:*p+2C:*(a+2)D:*&a5第9题 题号:679以下程序段的输出结果是(D)。char *alp=ABC,DEF,GHI; int j; puts(alp1);A:AB:BC:DD:DEF第10题 题号:680设有以下语句, 若0k4,下列选项中对字符串的非法引用是(A)。 char str42=aaa,bbb,ccc,ddd,*strp4; int j; for (j=0;j4;
22、j+) strpj=strj;A:strpB:strkC:strpkD:*strp第11题 题号:681若有int a=1,2,3,4; 则*(a+1),*(*a+1)的含义分别为(B)。A:非法,2B:&a10,2C:&a01,3D:a00,4第12题 题号:682若有定义:char *p1,*p2,*p3,*p4,ch;则不能正确赋值的程序语句为(C)。A:p1=&ch; scanf(%c,p1);B:p2=(char *)malloc(1);scanf(%c,p2);C:*p3=getchar();D:p4=&ch;*p4=getchar();第13题 题号:683当定义一个结构体变量时
23、,系统分配给它的内存是(A)。A:各成员所需内存量的总和B:结构中第一个成员所需内存量C:结构中最后一个成员所需内存量D:成员中占内存量最大者所需的容量第14题 题号:773以下叙述中正确的是(A)。A:构成C程序的基本单位是函数B:可以在一个函数中定义另一个函数C:main()函数必须放在其它函数之前D:所有被调用的函数一定要在调用之前进行定义第15题 题号:685以下对枚举类型名的定义中正确的是(B)。A:enum a=sum,mon,tue;B:enum a sum=9,mon=-1,tue;C:enum a=sum,mon,tue;D:enum a sum,mon,tue;第16题 题
24、号:686在下列程序段中,枚举变量c1,c2的值依次是(A)。 enum color red,yellow,blue=4,green,white c1,c2;c1=yellow;c2=white; printf(%d,%dn,c1,c2);A:1,6B:2,5C:1,4D:2,6第17题 题号:687变量p为指针变量,若p=&a,下列说法不正确的是(D)。A:&*p=&aB:*&a=aC:(*p)+=a+D:*(p+)=a+第18题 题号:688以下程序的输出结果是(B)。main() char s=123,*p; p=s; printf(%c%c%cn,*p+,*p+,*p+); A:123
25、B:321C:213D:312第19题 题号:689执行下列语句后的结果为(B)。 int x=3,y; int *px=&x; y=*px+;A:x=3,y=4B:x=3,y=3C:x=4,y=4D:x=3,y不知第20题 题号:690下列各m的值中,能使m%3=2&m%5=3&m%7=2为真的是(B)。A:8B:23C:17D:6第21题 题号:772下列叙述中正确的是(D)。A:C语言编译时不检查语法B:C语言的子程序有过程和函数两种C:C语言的函数可以嵌套定义D:C语言所有函数都是外部函数第22题 题号:692在位运算中,操作数每右移一位,其结果相当于(B)。A:操作数乘以2B:操作数
26、除以2C:操作数乘以16D:操作数除以16第23题 题号:693fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是(C)。A:字符串读入后不会自动加入0B:fp是file类型的指针C:fgets函数将从文件中最多读入n-1个字符D:fgets函数将从文件中最多读入n个字符第24题 题号:694C语言中的文件类型只有(B)。A:索引文件和文本文件两种B:ASCII文件和二进制文件两种C:文本文件一种D:二进制文件一种第25题 题号:695C语言中,文件由(D)。A:记录组成B:由数据行组成C:由数据块组成D:由字符(字节)序列组成第26题 题号:696C语言中的文件的存储
27、方式有(C)。A:只能顺序存取B:只能随机存取(或直接存取)C:可以顺序存取,也可随机存取D:只能从文件的开头进行存取第27题 题号:697下列程序的输出结果是(B)。main() int x=1,y=0,a=0,b=0; switch(x) case 1:switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; case 3:a+;b+;break; printf(a=%d,b=%dn,a,b);A:a=1,b=0B:a=2,b=1C:a=1,b=1D:a=2,b=2第28题 题号:698设j和k都是int类型,则下面的f
28、or循环语句(A)。 for(j=0,k=0;jb?a:b;printf(%d,t);A:7B:9C:63D:49第42题 题号:712下列表达式中,可作为C合法表达式的是(B)。A:3,2,1,0B:(3,2,1,0)C:3=2=1=0D:3/2/1/0第43题 题号:713以下语句中,不能实现回车换行的是(B)。A:printf(n);B:putchar(n);C:fprintf(stdout,n);D:fwrite(n,1,1,stdout);第44题 题号:714执行以下程序段后,输出结果和a的值是(B)。int a=10;printf(%d,a+);A:10 和 10B:10 和 1
29、1C:11 和 10D:11 和 11第45题 题号:715以下语句中,循环次数不为10次的语句是(A)。A:for(i=1;i10;i+);B:i=1;doi+;while(i0)-i;D:i=1;m:if(i1;i-)for(j=1;j10;i+)B:static int a;while(a)C:int s=6;do s-=2;while(s);D:int s=6;m:if(sc)b=a;a=c;c=b;则c的值为(B)。A:1B:2C:3D:不一定第49题 题号:719int a=1,b=2,c=3;if(ab)a=b;if(ac)a=c;则a的值为(A)。A:1B:2C:3D:不一定第50题 题号:720int a=3,b=2,c=1;if(abc)a=b;else a=c;则a的值为(C)。A:3B:2C:1D:0第51题 题号:721求平方根函数的函数名为(D)。A:cosB:absC:powD:sqrt第52题 题号:722while(fabs(t)=1e-5&t-10&s10B:fabs(t)1e-5&
限制150内