C试题库
C语言题库

C语言题库第一篇:C语言题库1、用Access创建的数据库文件,其扩展名是______。
A:.adp B:.dbf C:.frm D:.mdb 答案:D2、数据库系统的核心是______。
A:数据模型 B:数据库管理系统 C:数据库 D:数据库管理员答案:B3、数据库系统是由数据库、数据库管理系统、应用程序、______、用户等构成的人机系统。
A:数据库管理员 B:程序员 C:高级程序员D:软件开发商答案:A4、在数据库中存储的是______。
A:信息 B:数据 C:数据结构 D:数据模型答案:B5、在下面关于数据库的说法中,错误的是______。
A:数据库有较高的安全性 B:数据库有较高的数据独立性 C:数据库中的数据可以被不同的用户共享D:数据库中没有数据冗余答案:D6、下面关于新型数据库的说法中,错误的是______。
A:数据仓库不是一个新的平台,仍然使用传统的数据库管理系统,而是一个新的概念B:分布式数据库是一个数据在多个不同的地理位置存储的数据库C:面向对象数据库仍然采用传统的关系型数据库管理系统D:空间数据库是随着地理信息系统gis的开发和应用而发展起来的数据库新技术答案:C7、不是数据库系统特点的是______。
A:较高的数据独立性B:最低的冗余度 C:数据多样性 D:较好的数据完整性答案:C8、在下列数据库管理系统中,不属于关系型的是______。
A:Micorsoft Access B:SQL server C:Oracle D:DBTG系统答案:D9、Access是______数据库管理系统。
A:层次B:网状C:关系型 D:树状答案:C10、在Access中,数据库的基础和核心是______。
A:表B:查询 C:窗体 D:宏答案:A11、在下面关于Access数据库的说法中,错误的是______。
A:数据库文件的扩展名为mdb B:所有的对象都存放在同一个数据库文件中 C:一个数据库可以包含多个表D:表是数据库中最基本的对象,没有表也就没有其他对象答案:B12、在一个单位的人事数据库,字段“简历”的数据类型应当为______。
c语言考试及答案

c语言考试及答案————————————————————————————————作者:————————————————————————————————日期:浙江理工大学C程序设计试题(一)试题二、语言基础题(本题共30分)(一)判断题(本题共10分,每小题1分)说明:在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。
(16) C语言程序的三种基本结构是顺序、选择和嵌套。
(17) 在C语言程序中,在函数内部定义的变量称为全局变量。
(18) 运算符“=”和“&=”的优先级相同。
(19) ‘%f’是不正确的字符常量。
(20) 运算符“+”不能作为单目运算符。
(21) 如果运算符“*”和“/”都是右结合的,则表达式10*6/5的值是10。
(22) s(s-a)(s-b)(s-c)是合法的C语言表达式。
(23) 表达式!!6的值是6。
(24) 表达式~(~2<<1)的值是5。
(25) 对于变量定:int a[10],*p=a+8;数组a的最后一个元素是p[1]。
(二)单选题(本题共20分,每小题2分)(26) 执行语句printf("(26) ","A");将得到出错信息。
A、%uB、%sC、%eD、%d(27) 设c是一个字符变量,求解表达(27) 后,c的值不是1就是0。
A、c=getchar()!=’\n’B、(c=getchar()!)=’\n’C、c=’1’D、c=EOF(28) 下列定义中,(28) 定义的变量可以存放-123.4。
A、long a;B、unsigned b;C、int d;D、float c;(29) 对于变量定义;char *pp[100],pp是一个(29) 。
A、函数B、数组元素C、指针变量D、数组(30) 下列程序段的输出结果是(30) 。
char *st[ ]={ "SUM","MOON","STAR","X"};printf("(%s,%c) ",*(st+1)+1,*(*(st+2)+2)+2)A、(MOON,M)B、(OON,C)C、(OON,Q)D、(OON,A)(31) 对于以下的变量定义,表达式(31) 是不正确的。
历年C语言考试题库及答案

C语言理论上机考试选择题部分(共200题,仅针对11级定向专业)1、下面程序的输出是___D______#include<>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D______.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是______A____.A) '\t' B) "A" C) 65 D) A4、表达式: 10!=9的值是________D____.A) true B) 非零值 C) 0 D) 15、C语言提供的合法的数据类型关键字是_____B____.A) Double B) short C) integer D) Char6、字符(char)型数据在微机内存中的存储形式是__D__.A) 反码 B) 补码 C) EBCDIC码 D) ASCII码7、C语言程序的基本单位是_____C______.A) 程序行 B) 语句 C) 函数 D) 字符8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是____D____A) 552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是____B__.#include<>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 1010、下面程序的输出是____B______.#include<>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 2411、下面程序的输出的是_____C____.#include<>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值12、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#include<>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____D__.A) a<>0 B) !a C) a=0 D) a14、以下程序的输出结果是____D_____.#include<>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A) 1 B) 0 C) 4 D) 316、为表示关系x≥y≥z,应使用C语言表达式___A___.A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z) C) (x>=y>=z) D) (x>=y) & (y>=z)17、C语言中非空的基本数据类型包括____B____.A) 整型,实型,逻辑型 B) 整型,实型,字符型C) 整型,字符型,逻辑型D) 整型,实型,逻辑型,字符型18、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是____A___.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<>void main(){char ch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入abc<回车>则程序的运行结果是__A_____.A) a B) b C) c D) 程序语法出错20、阅读下面的程序#include<>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是____D____.A) 1,19 B) -1,19 C) 1,17 D) -1,1721、阅读下面的程序#include<>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是______C____.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1122、已知a=12,则表达式a+=a-=a*=a的结果是_____A__.A) 0 B) 144 C) 12 D) -26423、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21 D) 1124、阅读下面的程序#include<>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4525、下面程序的输出结果是____D____.#include<>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,326、下面程序的输出结果是____A____.#include<>void main(){int a=5,b=3;float x=, y=;printf("%d,%d\n",a+b!=a-b,x<=(y-=);}A) 1,0 B) 0,1 C) 1,1 D) 0,027、执行下面程序段后,输出结果是____A____.int a;int b=65536;a=b;printf("%d\n",a);A) 65536 B) 0 C) -1 D) 128、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是____B_____.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1029、已知有double型变量x=,y=,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4 的值是_____B____.A) B) 2.5 C) D) 030、若已定义x和y是整型变量,x=2;,则表达式y=+x/2的值是____C____.A) B) 5 C) 3 D) 31、以下程序的输出结果是____D____.#include<>void main(){int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,1332、设有以下语句:int x=10;x+=3+x%(3),则x的值是.____A_____A) 14 B) 15 C) 11 D) 1233、若d为double型变量,则表达式d=1,d+5,d++的值是_____D__.A) 1 B) 6.0 C) D)34、表达式5!=3的值是____D____.A) T B) 非零值 C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值______A____.A) 0 B) 1 C) 12 D) 636、若有定义int x=3,y=2和float a=,b=,则表达式:(x+y)%2+(int)a/(int)b的值是__D__.A) 0 B) 2 C) D) 137、在C语言中,以下叙述不正确的是_____A____.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____.A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y值的数据类型是___D____.A) float B) char C) int D) double40、一个C语言的执行是从_____A______.A) 本程序的主函数开始,到本程序的主函数结束B) 本程序的第一个函数开始,到本程序的最后一个函数结束C) 本程序的主函数开始,到本程序的最后一个函数结束D) 本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是____A____.A) 10<a<15 B) a==11||a==12||a==13||a==14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_____C____.#include <> void main( ){ int a=5,b=60,c;if (a<b){c=a*b;printf("%d*%d=%d\n",b,a,c);}else{c=b/a;printf("%d/%d=%d\n",b,a,c);}}A) 60/5=12 B) 300 C) 60*5=300 D) 1243、如果c为字符型变量,判断c是否为空格不能使用____A____.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')44、运行下面程序时,若从键盘输入"3,5<CR>",则程序的输出结果是____D____.#include <>void main( ){int x,y;scanf("%d,%d",&x,&y);if (x==y)printf("x==y");else if (x>y)printf("x>y");elseprintf("x<y");}A) 3<5 B) 5>3 C) x>y D) x<y45、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是____C___.#include <>void main( ){ int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if (a>b)if (a>c)printf("%d\n",a);elseprintf("%d\n",c);elseif (b>c)printf("%d\n",b);elseprintf("%d\n",c);}A) 5 B) 6 C) 7 D) 不定值46、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是____A____.#include <>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10; printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1047、运行下面程序时,从键盘输入"<CR>",则输出结果是___B_____.#include <>void main( ){ float a,b;scanf("%f",&a);if (a< b=;else if ((a< && (a!=) b=(a+;else if (a< b=2;else b=;printf("%f\n",b);}A) B)C) D)48、执行下面程序后,运行结果是____A____.#include <>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=149、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是___A___.#include <>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值50、运行下面程序时,从键盘输入字母H,则输出结果是_____C___.#include <>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye! Bye_Bye!51、执行下列程序段后的输出结果是_____A____.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<yy:x);A) 3 B) 2 C) 1 D) 452、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')ch+32:ch的值是__B___.A) Z B) a C) z D) A53、下面程序的输出结果是____C____.#include <>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 054、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是_____B___.#include <>void main( ){ int a ;scanf("%d",&a);if (a++>5)printf("%d\n",a);else printf("%d\n",a--) ;}A) 7 B) 6 C) 5 D) 455、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是____B___.#include <>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2056、下列程序的执行结果是_____D____.#include <>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,157、假定等级和分数有以下对应关系:等级:A 分数:85~100等级:B 分数:60~84等级:C 分数:60 以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是____D____.A) switch (grade){case 'A':printf("85--100\n");case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf("等级错误!\n");}B) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf(" 等级错误!\n");}C) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60以下\n");default:printf("等级错误!\n");}D) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60以下 \n");break;default:printf("等级错误!\n");}58、能够完成如下函数计算的程序段是__B____.┌ -1 x<0y= ┤ 0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;59、有如下程序#include <>void main( ){ float x=,y;if(x< y=;else if (x< y=x;else y=;printf("%f\n",y);}该程序的输出结果是____C_____.A) B)C) D)60、以下程序的执行结果是___B_____.#include <> void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break; case 1:printf("second\n");break; }case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird61、以下程序的执行结果是____A____.#include <>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("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2562、有如下程序:#include <>void main( ){ int a=2,b=-1,c=2;if (a<b)if (b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是___C_____.A) 0 B) 1 C) 2 D) 363、下列程序执行后的输出结果是____B____.#include <>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息64、有如下程序#include <> void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是______A____.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=265、下面程序的输出结果是____C_____.#include <>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 066、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)w:x; m=(m<y)m:y; m=(m<z)m:z;则该程序段执行后,m的值是____D_____.A) 4 B) 3 C) 2 D) 167、以下程序的输出结果是___D______.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 168、若执行下面的程序从键盘上输入9,则输出结果是.______B________#include <>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 869、以下程序输出结果是_____D_____.#include <>void main( ){ int m=4;if (++m>5) printf("%d\n",m--);else printf("%d\n",--m);}A) 7 B) 6 C) 5 D) 470、若执行下面的程序从键盘上输入5,则输出结果是.#include <> void main( ){int x;scanf("%d",&x);if (x++>5) printf("%d\n",x);else printf("%d\n",x--);}A) 7 B) 6 C) 5 D) 471、以下程序段运行结果是____A____.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<yy:x);A) 1 B) 2 C) 4 D) 不确定的值72、有以下程序#include <>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是____A____.A) 2,1 B) 3,2 C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是___C____.#include ""void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,174、执行下列程序后的输出结果是___D____.#include <>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<ak:c<bc:a);}A) 4 B) 3 C) 2 D) 175、以下条件表达式中能完全等价于条件表达式x的是____B___.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)76、若运行下面程序时,给变量a输入15,则输出结果是___A___.#include <>void main( ){ int a,b;scanf("%d",&a);b=a>15a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1077、运行下面程序后,输出是___D___.#include <>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n")}A) ####B) ****C) ####****D) 有语法错误不能通过编译78、执行下面程序的输出结果是____C____.#include <>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出 ****D) 输出 ####79、为了避免嵌套的if-else语句的二义性,C语言规定else总是与___C___组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if80、设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为____C_____.x=y=z=1;t=++x || ++y && ++z;A) 不定值 B) 4 C) 1 D) 081、以下程序段____C______.x=-1;do{x=x*x;} while (!x);A)是死循环 B)循环执行两次C)循环执行一次 D)有语法错误82、对下面程序段描述正确的是___B____.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次83、下面程序段的输出结果是____C____.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环 D)输出错误信息84、下面程序的运行结果是____B____.#include<>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,985、下面程序段的运行结果是____B______.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息86、下面程序段的运行结果是___D_____.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8D)8,2087、下面程序的运行结果是___B_____.#include<>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 688、函数pi的功能是根据以下近似公式求π值:____C______(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)请填空,完成求π的功能。
所有C语言题库大全(含答案)

试卷编号:2203所属语言:C语言试卷方案:所有C语言题库试卷总分:1220分共有题型:1种一、程序填空共122题(共计1220分)第1题(10.0分)题号:558 难度:中第2章/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这4块当砝码能称出1~40磅的整数重量的物体。
编程求这4块的各自重量。
-------------------------------------------------------*/#include <stdio.h>#include <stdlib.h>main(){int i,j,k,l,p,t1,t2,t3,t4;for(i=1;i<38;i++)/***********SPACE***********/for(【?】;j<38-i;j++)/***********SPACE***********/for(k=j;k<【?】;k++){l=40-i-j-k;for(p=1;p<40;p++){for(t1=-1;t1<2;t1++)for(t2=-1;t2<2;t2++)for(t3=-1;t3<2;t3++)for(t4=-1;t4<2;t4++)/***********SPACE***********/if(【?】==p) goto next;break;/***********SPACE***********/next:if(p==【?】){printf("%d,%d,%d,%d\n",i,j,k,l);exit(0);}}}printf("error.");}答案:=======(答案1)=======j=i=======(答案2)=======39-i-j=========或=========39 -i -j=======(答案3)=======i*t1+j*t2+k*t3+l*t4=========或=========i * t1 + j * t2 + k * t3 + l * t4=======(答案4)=======39第2题(10.0分)题号:525 难度:较易第2章/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:利用全局变量计算长方体的体积及三个面的面积。
c语言期末考试题库大题及详解答案

c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
C语言试题库(完整版)

C语言试题库一、单项选择第一章C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、C程序的每行中只能写一条语句。
C、C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=(i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、i f, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4)以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5)若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#incl ude “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”);else printf(“$ $ $\n”);}以上程序。
(完整版)C语言考试试题基础版

(完整版)C语言考试试题基础版一、选择题1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为。
A. mainB. MAINC. nameD. function2. 在以下关于C 语言的注释的叙述中,不正确的是。
A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示B .编译器在编译一个程序时,将跳过注释,不对其进行处理C .编译器在编译一个程序时,可发现注释中的单词拼写错误D .程序中注释的多少不会影响所生成的可执行文件的长度3. 以下叙述不正确的是。
A .在C 程序中,严格区分大小写字母B .一个C 源程序有且仅有一个main 函数C .在C 程序中,注释只能位于一条语句的后面D .一个C 程序总是从main 函数开始执行4. 下列合法的标识符为A. abde+B. #KDJFC. 67KDJD. DK3_5. 关于字符串和字符的关系正确的是A. “A ”与’A ’是相同的B. 字符串是常量,字符是变量C. “A ”与’A ’是不同的D. “A ”与“A ”是相同的6. 下面关于语句的说法正确的是A. 下面这两段程序的执行效果是一致的B. 空语句是只有一个分号的语句,它其实什么也不干C. 语句的构成不一定需要分号D. 语句的书写对程序的运行不起作用,因此可以随便写都可以7. 以下各标识符中,合法的用户标识符组为。
A. PAd ,P#d ,b-b ,abc ,_0123,ssipedB. cin ,a10,CPP ,float ,del_word ,signedC. void ,max ,hiy ,,list ,*jerif (x>y){z=x; s=z*z;}else{z=y;s=1/(z*z);}if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);D.a,temp,_isw,INT,keep,wind8.字符串“\”E OF= -\61\””的长度是。
C语言全部考试系统题库含答案

目录第一章 C语言基础知识(C语言概述、算法、数据类型运算符表达式、位运算)一、判断题(正确的填A,错误的填B)R1.在C语言中,逗号运算符的优先级最低。
(A)2.在C语言可执行程序的开始执行点是程序中第一个函数。
(B)3.“5ch”是合法的变量名。
(B)4.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
(A)5.当输入数据时,必须指明变量的地址,如scanf("%f",&f) (A)N6.表达式i++与++i在任何场合功能完全相同。
(B)7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
(A)R8.C语言程序中,语句以逗号结尾。
( B )9.在 C 程序中,APH 和aph 代表不同的变量。
( A )10. a-=7等价于a=a-7。
( A )N11. printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按原字符长从左向右全部输出。
(A )12.如果x>y为真或a<b为真,表达式(x>y)&&(a<b)就为真。
( B )13.C语言程序的变量必须先定义再使用。
( A )14.若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b 中的值将丢失。
( B )15.程序的执行总是从main函数开始,在程序的最后一个函数中结束。
(B )16.变量的三个属性是指变量的名字、变量的值和变量在内存中的地址。
(A)17. 运算符优先顺序:赋值运算符<逻辑运算符<关系运算符<算术运算符(B)18.对应float类型的变量,也可以用等号“==”进行数值的判断。
(B)19.表达式:1 && 3.14 和 1 & 3 的值一样大。
(B)20. 为了正确计算表达式既要考虑运算符的优先级,也要考虑其结合性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2000~2001学年《程序设计基础-C》试卷一、单项选择题(每小题 2 分,共 30 分)1. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
A、‘{‘ 和’}’B、‘[‘和’]’C、“/*”和”*/”D、“*/”和”/*”2.下列运算符中,优先级最低的是_____。
A、*B、!=C、+D、=3.若变量已正确定义,表达式 (j=3, j++) 的值是_____ 。
A、3B、 4C、5D、04.已知字符‘a’ 的ASCII码为 97 ,执行下列语句的输出是_____。
printf ("%d, %c", ’b’, ’b’+1 ) ;A、98, bB、语句不合法C、98, 99D、 98, c5.表达式strcmp(“box”, “boss”) 的值是一个_______。
A、正数B、负数C、 0D、不确定的数6.数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。
A、a[3][2]B、a[2][1]C、a[1][2]D、a[2][3]7.要调用数学函数时,在#include命令行中应包含_____。
A、””B、””C、””D、””8.判断i和j至少有一个值为非0的表达式是_____。
A、 i!=0 && j!=0B、i*j!=0C、!(i==0 || j==0)D、i&&j9.若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。
A、scanf(”%d,%f”, &a, &c);B、scanf(”d=%d, c=%f”, &a, &c);C、scanf(”%d%f”, &a, &c);D、scanf(”%d%f”, a, c);10.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。
A、p++B、x++C、*(p++)D、&x++11.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _____是正确的。
A、p2=p1;B、p2=**p1;C、p2=&p1;D、p2=*p1;12.下列程序段的输出是_____。
int c[]={1, 3, 5};int *k=c+1;printf("%d", *++k);A、 3B、 5C、 4D、613.不正确的赋值或赋初值的方式是______。
A、char str[]="string";B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'};C、char str[10];str="string";D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', ’\0’};14.对于以下结构定义,++p->str中的++加在_____。
struct {int len;char *str;} *p;A、指针str上B、指针p上C、str指的内容上D、以上均不是15.对于如下说明,语法和语义都正确的赋值是_____。
int c, *s, a[]={1, 3, 5};A、c=*s;B、 s[0]=a[0];C、s=&a[1];D、 c=a;二、填空题(每小题 2 分,共 20 分)1.写出下列程序段的输出结果。
float x1, x2;x1=3/2;x2=x1/2;printf("%d, %.1f", (int)x1, x2) ;2.表达式 (7<<1>>2^2 ) 的值是_______。
3.写出下列程序段的输出结果。
#define A 10#define B (A<A+2)-2printf("%d", B*2);4.写出判断字符变量c是英文字母的表达式。
5.写出下列程序段的输出结果。
int k, x;for (k=0, x=0; k<=9&&x!=10; k++)x+=2;printf ("%d, %d", k, x) ;6.写出下列程序段的输出结果。
printf(“%d, %d”, NULL, EOF);7.对于以下递归函数f,调用 f (3) 的返回值是_____。
f (int n){ return ((n>0) 2*f(n-1)+f(n-2) : -1); }8.写出下列程序段的输出结果。
char str[]="hello\tworld\n";printf("%d, %c\n", sizeof(str), *(str+10));9.输入12345#后,写出下列程序的输出结果。
void main(){ char c;for(c=getchar(); getchar()!=’#’; c=getchar())putchar(c);}10.执行程序find –nx ould 时,*++argv[1]的值是_______。
三、程序阅读题(每题5分,共20分)1.若输入 3 1 2 3 <回车> , 则以下程序的输出结果是_______。
#include ""void main(){ int i, j, n, a[10];scanf("%d", &n);for (i=0; i<n; i++)scanf("%d",&a[i]);for (i=0; i<n; i++)for (j=0; j<n; j++)printf("%d, ", a[(i+j)%n]);}2.若输入89 76 24 25 9 8 11 16 35 4 <回车> , 则以下程序的输出结果是_______。
#include ""#define N 10main(){int x[N], y1[N], y2[N];int i, j, n1, n2, t, p;n1=n2=0;for(i=0;i<N;i++){sc anf(“%d”,& x[i]);if(x[i] % 2==0) y1[n1++]=x[i];else y2[n2++]=x[i];}for(i=1; i<n1; i++)for(j=0; j<n1-1; j++)if(y1[j]>y1[j+1]){t=y1[j]; y1[j]=y1[j+1]; y1[j+1]=t;}for(i=0; i<n2-1; i++){p=i;for(j=i+1; j<n2; j++)if(y2[p]<y2[j]) p=j;if(p!=i){t=y2[i]; y2[i]=y2[p]; y2[p]=t;}}for(i=0; i<n1; i++) printf("%d, ", y1[i]); for(i=0; i<n2; i++) printf("%d, ", y2[i]); }3.以下程序的输出结果是_______。
#include< >int z;void p(int *x, int y){ ++*x;y--;z=*x+y+z;printf("%d, %d, %d#", *x, y, z);}void main(){ int x=1, y=5, z=9;p(&x, y);printf("%d, %d, %d#", x, y, z);}4.若输入 -6+15*3/5=<回车> , 则以下程序的输出结果是_______。
#include <>void main(){int m=0, sum=0;char c, oldc='+';do {c=getchar();if(c<='9'&&c>='0') m=10*m+c - '0';else {if(oldc=='+') sum += m;else sum -= m;m=0;oldc=c;printf("%d, ", sum);}} while(c!='=');}四、程序填空题(每空 2 分,共 20 分)1.下列程序的功能是创建单向链表。
#include <>#include <>struct link {char name[10];int mark;struct link * next;};void insert(char *, int);struct link * head = NULL;main(){char name[10];int mark;struct link * t;while ( 1 ) {scanf("%s %d", name, &mark);if ( strcmp(name, "#") == 0 ) break;______(1)_______;}for (t=head; ______(2)_______)printf("<%s>: %d\n", t->name, t->mark);}void insert(char * name, int mark){struct link * p;p = ______(3)_______ ;strcpy(p->name, name);p->mark = mark;______(4)_______;if ( head != NULL ) ______(5)_______;head = p;}2.是带命令行参数的程序。
运行prog filename时,将文本文件filename中的内容原样输出;运行prog -u filename时,将文本文件filename 中的所有字母以大写方式输出(其余字符原样输出);运行prog -d filename时,只将文本文件filename中的数字输出。
# include <># include <>void main(int argc, char * argv[]){FILE *fp;char * filename, ch;int tag=0;if (argc< 2 || argc>3) { printf(“Argument error\n”); return; }if (argc == 3) {if (strcmp(argv[1], “-u”) == 0) tag=1;else if (strcmp(argv[1], “-d”) == 0) tag=2;else {printf(“Option error\n”); return;}______(6)_______;}else filename = argv[1];if (______(7)_______) {printf(“Cannot open file\n”); return;}while (______(8)_______ ) {ch = fgetc(fp);if ( tag == 0 ) putchar(ch);else if ( tag == 1 ) ______(9)_______;else if ( ______(10)_______) putchar(ch);}fclose(fp);}五、编程题 ( 共 10 分,混合班学生做第2题,其他学生做第1题)1.[程序说明] (10分)输入m和n(m≥n≥0)后,计算下列表达式的值并输出。