《C综合题库》word版.doc

上传人:wux****ua 文档编号:8965112 上传时间:2020-04-02 格式:DOC 页数:48 大小:68KB
返回 下载 相关 举报
《C综合题库》word版.doc_第1页
第1页 / 共48页
《C综合题库》word版.doc_第2页
第2页 / 共48页
《C综合题库》word版.doc_第3页
第3页 / 共48页
点击查看更多>>
资源描述
一、 单选题1、 C语言程序的基本单位是程序行 语句 函数 字符C2、 若t为double类型,表达式t=1,t+5,t+的值是 1 6.021D3、 c语言是()语言 高级语言 中级语言 机器语言 汇编语言A4、 能正确表示逻辑关系:a=10或a=10 or a=0|a=10 & a=10 | a=0D5、 以下叙述中正确的是_。A、C程序中注释部分可以出现在程序中任意合适的地方B、花括号和只能作为函数体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名D、分号是C语句之间的分隔符,不是语句的一部分A6、 以下选项中可作为C语言合法整数的是_。A、10110BB、0386C、0XffaD、x2a2C7、 以下不能定义为用户标识符的是_。A、scanfB、VoidC、_3com_D、intD8、 请选出合法的C语言赋值语句 a=b=58 i+; a= 58,b=58 k=int(a+b);B9、 若有定义:int a=16,b=10,c;执行语句c=a/b+0.4后,c的值为()1.4120 21 B10、 以下程序的输出结果是_。 #include #include main() int a=1,b=4,c=2; float x=10.5,y=4.0,z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; printf(%fn,z); A、14.000000 B、15.400000 C、13.700000 D、14.900000 C11、 以下程序的输出结果是_。 #include main() int a,b,d=241; a=d/100%9; b=(-1)&(-1); printf(%d,%dn,a,b); A、6,1 B、2,1 C、6,0 D、2,0 B12、 以下程序的输出结果是_。 #include main( ) int a=2,c=5; printf(a=%d,b=%dn,a,c); A、a=%2,b=%5 B、a=2,b=5 C a=%d,b=%d D a=%d,b=%d D13、 以下程序的输出结果是_。 #include main() printf(%dn,NULL); A、不确定的(因变量无定义) B、0 C、-1 D、1 B14、 以下程序的输出结果是_。 #include main() int i=10,j=10; printf(%d,%dn,+i,j-); A、11,10 B、9,10 C、010,9 D、10,9 A15、 设有如下定义: int x=10,y=3,z; 则语句 printf(%dn,z=(x%y,x/y); 的输出结果是 1043D16、 已知字母A的ASCII码为十进制的65,下面程序的输出是 main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; printf(%d,%cn,ch1,ch2); 67,D B,C C,D 不确定的值A17、 下面程序的输出是 main() int x=10,y=3; printf(%dn,y=x/y); 013 不确定的值C18、 若执行下面的程序时从键盘上输入5,则输出是 main() int x; scanf(%d,&x); if(x+5) printf(%dn,x); else printf(%dn,x-); 7654B19、 下面的程序 main() int x=3,y=0,z=0; if(x=0)printf(* * * *); else printf(#); _。 A、有语法错误不能通过编译 B输出* * * * C、可以通过编译, 但是不能通过连接, 因而不能运行 D、输出#D选择20、 两次运行下面的程序,如果从键盘上分别输入8和9,则输出结果是()main( ) int x; scanf(%d,&x); if(x-6) printf(%d,x); else printf(%dn,x-); 7和8 8和9 9和10 10和11A21、 以下函数fun用于求两个整数a和b的最大公约数_。fun(int a,int b)int i,j,m,n; if(ab) m=a;a=b;_; i=a; j=b; while(n=_)!=0) j=i;i=_; return(i); D、b=m和j%i和nD22、 有以下程序( ).main() int a=15,b=21,m=0; switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default:m+; case 0:m+;break; printf(%dn,m);A、1B、2C、3D、4D循环23、 以下程序的输出结果是( ) main() int a=0,i; for(i=1;i5;i+) switch(i) case 0: case 3: a+=3; case 1: case 2:a+=3; default:a+=5;printf(%d,a);32131020A24、 下面函数 int fun1(char*x) char *y=x; while(*y+); return(y-x-1); 的功能是_。 A、求字符串的长度 B、比较两个字符串的大小 C、将字符串x复制到字符串yD、将字符串x连接到字符串y后面 A25、 以下的for循环:for(x=0,y=0;(y!=123)&(x4);x+); A、是无限循环 B、循环次数不定 C、执行4次 D、执行3次 C26、 以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%fn,n,ave); 上述程序运行后结果不符合题意,是因为其中有一条语句的原因 _.A、sum=0.0;B、sum+=score;C、ave=sum/4.0;D、for(n=1;n=10;n+)A27、 以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空: #include findmax(int *s,int t,int *k) int p ; for(p=0,*k=p;ps*k) _; main() int a10,i,k; for(i=0;i10;i+) scanf(%d,&ai); findmax(a,10,&k); printf(%d,%dn,k,ak); A、k=p B、*k=p-s C、k=p-s D、*k=pD28、 以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。_strcen(char a ,char b ) int num=0,n=0; while(*(a+num)!=_) num+; while(bn) *(a+num)=bn; num+; _; return(num);A、0 -n;B、0 n-;C、NULL +nD、0 n+ C29、 以下函数返回a所指数组中最小值所在的下标值。fun(int *a,int n) int i,j = 0,p; p = j; for( i = j; i n; j+) if(ai ap)_; return(p); 在下划线处应填入的是_。A、i=pB、ap=aiC、p=jD、p=i D30、 语言中() 能使用do-while语句构成的循环do-while语句构成的循环必须用break语句才能退出 do-while语句构成的循环,当while语句中的表达式为非零时结束循环 do-while语句构成的循环,当while语句中的表达式值小于零时结束循环A31、 以下for语句构成的循环执行了多少次? #include #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i , n=0; for ( i=1;i=NUM;i + + ) n + + ; printf(%d,n); printf(n); 5689C32、 语句while(!E);中的条件!E等价于 E = = 0 E!=1 E!=0 EA33、 下面的程序main ( ) int x=3; do printf(%dn,x-=2); while(!(-x) ); _。A、输出的是1 B、输出的是1和-2 C、输出的是3和0 D、是死循环 B34、 下面的程序中_错误(每行程序前面的数字是行号)。1 #include2 main()3 4 float a3=0.0;5 int i;6 for(i=0;i3;i+) scanf(%d,ai);7 for(i=1;i3;i+) a0=a0+ai;8 printf(%fn,a0);9 A、没 B、第4行 C、第6行 D、第8行C35、 下述对C语言字符数组的描术中错误的是 字符数组可以存放字符串 字符数组中的字符串可以整体输入、输出 可以在赋值语句中通过赋值运算符=对字符数组整体赋值 不可以用关系运算符对字符数组中的字符串进行比较C36、 main( ) char ch25=6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i0;j+=2) s=10*s+pij-0; printf(%dn,s); 69825638256385693825C37、 以下程序段的输出结果是( ) char s =141141abct; printf(%dn,strlen(s);9121314A38、 合法的数组定义是 int a =string; char s=string; char a =0,1,2,3,4,5;char s =string;D39、 sizeof(double)是一种函数调用一个双精度型表达式 一个整型表达式 一个不合法的表达式C40、 sizeof(float)是() 一种函数调用 一个双精度型表达式一个整型表达式 一个不合法的表达式C函 数41、 以下程序的输出结果是_。 #include int func(int a,int b); void main() int k=4,m=1,p; p=func(k,m); printf(%d,p); p=func(k,m); printf(%dn,p); int func(int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return(m); A、8,17 B、8,16 C、8,20 D、8,8 A42、 以下函数调用语句中含有_实参。func(exp1,exp2 ); A、1 B、2 C、4 D、5B43、 当调用函数时,实参是一个数组名,则向函数传递的是( ) 数组的长度 数组的首地址 数组每一个元素的地址 数组每个元素中的值B指针44、 若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是_。A、i=*p;B、*p=*&j;C、i=&j;D、i=*p;B45、 若有以下定义和语句: char *s1=12345,*s2=1234; printf(%dn,strlen(strcpy(s1,s2); 则输出结果是 4 5 910A46、 下面程序 void prtv(int *x) printf(%dn,+*x); main() int a=2; prtv(&a); 的输出是_。A、3 B、4 C、5 D、6A47、 以下程序的输出结果为_。 main() char *alpha6=ABCD,EFGH,IJKL,MNOP,QRST,UVWX; char *p; int i; p=alpha; for(i=0;i4;i+) printf(%s,pi); printf(n); A、ABCDEFGHIJKL B、ABCD C、ABCDEFGHIJKLMNOP D、AEIM C48、 fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。_#include #define N 100int fun(int(*a)N) int row,col,max,min; for(row=0;rowN;row+) for(max=arow0,col=1;colarowcol和maxmin。B、maxarowcol和minmax。C、minarowcol和maxmin。D、maxarowcol和maxk=+i; p+; q-k=i+; q-; q-k=i; for(i=0;i5;i+) printf(%d,mi.k); printf(n);A、13431 B、12431 C、13421 D、13432A位运算52、 下面程序的输出是 main() char x=040; printf(%dn,x=xy ?x:ya-+=3ABC2、 合法的标识符()。可以由字母构成第一个字母可以为数字第一个字母可以为下划线最后一个字母必须为字母AC3、 以下说法正确的是()。C语言里有字符串变量C语言里没有字符串变量C语言里有字符变量C语言里没字符变量BC4、 合法的标识符()。可以由字母构成第一个字母可以为数字第一个字母可以为下划线最后一个字母必须为字母AC5、 下面那些为合法整型常量( )1900xf07650xkABC6、 C语言中三种基本的类型为()。intcharfloatstructABC7、 下面的程序运行后#includevoid main( )int a=3,i,j;i=a+;j=+a;以下正确的是()。a=5;i=3;j=3;j=5;ABD8、 下列为c语言的关键字是( )ifstructunionIntABC9、 以下不正确的叙述是在C程序中,每行只能写一条语句若a是实型变量,C程序中允许赋值A=10,因此实型变量中允许存放整型数在C程序中,无论是整数还是实数,都能被准确无误地表示在C程序中,%是只能用于整数运算的运算符ABC选择10、 请阅读以下程序#includemain() int a=5; if(a=3) printf(*n); else printf($n);以上程序有语法错误不能通过可以通过编译输出*输出$BC11、 能正确表示逻辑关系:a10 的C语言表达式是( )。 a10 !(a=10 a10BC12、 请阅读以下程序#includemain( )int a=9;if(a=1) printf(hello);printf(hi);以下正确的是()。编译错误无输出结果hellohiCD循环13、 t为int类型,进入下面的循环之前,t的值为0do while(t= =1);则以下叙述中正确的是( )循环控制表达式的值为0循环控制表达式的值为1循环控制表达式合法以上说法都不对AC14、 关于for(表达式1,表达式2,表达式3)循环,以下正确的是()。三个表达式都不可省略表达式1可以省略表达式2可以省略表达式3可以省略BCD15、 请阅读以下程序#includemain( )int c=5;while(c=10) a+;以下正确的是()。510死循环循环无限次CD16、 下面程序段描述正确的是#includevoid main() int x=3,y;do y=x-; printf(#); while(1=x);将输出#将输出#是死循环控制表达式合法BD17、 有以下程序段#includevoid main() int k=0;while(1)k+; 下面描述正确的是死循环没有语法错,能执行一次也不执行执行1次AB18、 关于while语句与do-while语句,以下正确的是()。while是当型结构do-while是直到型结构 两者有区别 两者无区别ABC19、 下面有关for循环的正确描述是:for循环只能用于循环次数已经确立的情况for循环先执行循环体语句后判断表达式在for循环中能用break语句跳出循环体for循环的循环体语句中可以包含多条语句,但必须用花括号括起来CD数组20、 int a10=1,2,3,4,5,6,7,8,9,10,以下的赋值语句正确的是()。a6=7a1=2a2=3a10=10ABC21、 若有定义:int aa8; 则以下表达式中能代表数组元素aa1的地址的是( )&aa0+1 &aa1 &aa2 aa+1ABD22、 下列描述中正确的是( ) 字符型数组中可以存放字符串 可以对整型数组进行整体输入、输出 可以对实型数组进行整体输入、输出 可以通过strcpy函数对字符型数组进行整体赋值AD23、 合法的数组定义是 char a =string; int a6=0,1,2,3,4,5; char s=string; char a3=0,1,2,3,4,5;AB24、 以下数组定义正确的是( )int a 3=0int b2 =1,2,3,4,5,6int c105=1,2,3int d23=1,2,3,4ACD函数25、 以下程序的输出结果是 fun(int x, int y, int z) z=x*x+y*y; main() int a=31; fun(5,2,a); printf(%d,a); 02931有确定值CD26、 以下不正确的说法是( ) 在不同函数中可以使用相同名字的变量形式参数是全局变量在函数内定义的变量只是在本函数范围内有效在函数内的复合语句中定义的变量在本函数范围内有效BD27、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A地址传递B单向值传递C由实参传给形参,不再由形参传回实参D传递方式由用户指定BC指针28、 int a=3,*p,*q;p=&a;q=p;以下正确的是()。*p=3;*q=3;p是指向变量a的指针,而q不是p,q都是指向变量a的指针ABD29、 以下定义结构类型的变量st1,其中正确的是( )Atypedef struct stud_type int num; int age; STD; STD st1;Bstruct stud_type int num,age;st1;Cstruct int num; float age;st1;Dstruct stud_type int num; int age;struct stud_type st1;ABCD30、 以下对C语言中共同体类型数据的叙述正确的是( )可以对共用体变量名直接赋值一个共用体变量中可以同时存放其所有成员一个共用体变量中不能同时存放其成员其所有成员共用体类型定义中能出现结构体类型的成员CD三、 判断题1、 c语言是低级语言错2、 已有定义:double x;能正确给x赋70000.0的表达式是x=70000 。对3、 在C程序中,除号运算符“/”两边的类型相同时才能进行相除运算。对4、 设x为int类型,其值为11,则表达式:(x+*1/3)的值是11。()错5、 可以把printf定义为用户标识符,但不能把if定义为用户标识符 。()对6、 a=b=c是非法的表达式。()错7、 以下程序的输出结果是1441 main( ) int a=801; printf(%on,a);对8、 假定x和y为int型,则表达式x=2,y=x+3/2的值是 3对9、 表达式a=b+10可以写成a+=10 错10、 C语言中,整形常数表示的方法有3种对11、 以下程序的输出结果是 12 main() int a=3; printf(%dn,(a+=a-=a*a) ); 错12、 下面的程序的结果是 输出&main() int x=3,y=0,z=0; if(x=y+z) printf(&); else printf(*);错13、 下列代码的输出内容_10,12,120 _。()#includemain()int a,b,c,d;a=10;b=a+;c=+a;d=10*a+;printf(b,c,d:%d,%d,%d,b,c,d);对14、 以下程序运行后的输出结果是 3e9,1753void main() int number=1001; printf(%x,%o,number,number);对15、 以下程序运行后的输出结果是 20 void main() int a,b,c,d,x; a=c=0; b=1; d=20; if(a) d=d-10; else if(!b) if(!c) x=15; else x=25; printf(%dn,d);对16、 在C语言中,for循环的表达式三是必须要的错17、 在定义数组变量时,可以不指定数组的第二维的长度错18、 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是20 for (i=5;i0;i-) for(j=0;j4;j+).对19、 break是结束本次循环,而continue是结束所有的循环错20、 有以下程序: float fun(int x,int y) return(x+y); main() int a=2,b=5,c=8; printf(%3.0fn,fun(int)fun(a+c,b),a-c); 程序运行后的输出结果是编译出错。()错21、 C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是double 。错22、 c语言中,每个程序都必须要有一个且只有一个main函数对23、 对于函数类型为void,它需要有一个返回值错24、 以下程序段的输出结果是:_5_。() char s =hello; printf(%dn,strlen(s);对25、 C语言中,函数的隐含存储类别是 extern对26、 c程序是由c文件构成,而c文件是由函数构成对27、 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是p=n;。对28、 以下程序的输出结果是 efgh main() char *p=abcdefgh,*r; long *q; q=(long*)p; q+; r=(char*)q; printf(%sn,r); 对
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!