C语言考试试卷

合集下载

C语言测试试卷

C语言测试试卷

一、选择题1.下列选项中,合法的C语言关键字是:DA)V AR B)cher C)integer D)default2.C语言中的标识符只能由字母、数字和下画线组成,且第一个字符 C A)必须为字母B)必须为下划线C)必须为字母或下画线D)可以是字母、数字或下画线中任一种3.在逻辑运算中逻辑运算符按以下优先次序排列 CA)||(或)&&(与)!(非)B)!(非)||(或)&&(与)C)!(非)&&(与)||(或)D)&&(与)!(非)||(或)4.若变量c为char类型,能正确判断出c为小写字母的表达式是 DA)’a’<=c<=’z’B)(c>=’a’)||(c<=’z’)C)(‘a’<=c)and(‘z’>=c) D)(c>=’z’)&&(c<=’z’)5.以下程序段的输出结果是 Cint x=3;do {printf(“%d”,x-=2);} while(!(--x));A)1 B)3 0 C)1 -2 D)死循环6.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)(a+b/b)的值是BA)6.500000 B)6C)5.500000 D)6.0000007.以下选项中不属于C语言的类型的是 DA)signed short intB)unsigned long intC)unsigned intD)long short8.以下变量名全部合法的是 AA)ABC、L10、a_b、_a1B)?123、print、*p、a+bC)_12、Zhang、*p、11FD)Li_Li、P、for、1019.以下选项中合法的长整型常量是:CA)5E2.0 B)E-3 C)2E0 D)1.3E10.C语言中规定,在一个源程序中main函数的位置 CA)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后11.请在下列选项中选出合法的C语言赋值语句 B A)a=b=58 B)i++;C)a=58,b=58 D)k=int(a+b);12.以下整数值中,不正确的十六进制数是 BA)0xffff B)oxccC)-0x123 D)0x1613.以下程序的输出结果是 A#include <stdio.h>main( ){int i;for(i=1;i<=5;i++){if(i%2) printf(“*”);else continue;printf(“#”);}printf(“$\n”);}A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$14.有以下程序#include <stdio.h>main( ){ int c;while((c=getchar())!=’\n’){switch (c-’2’){case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);case 4:putchar(c+2);break;}}printf(“\n”);}从第一列开始输入以下数据,<CR>代表一个回车符2743<CR>程序的输出结果是 AA)66877 B)668966C)6677877 D)668876615.若执行以下程序时从键盘上输入9,则输出结果是 B 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)816.设j为int型变量,则下面for循环语句的执行结果是 B for(j=10;j>3;j--){ if(j%3) j--;--j;--j;printf(“%d”,j);}A)6 3 B)7 4 C)6 2 D)7 317.下面正确的二维数组定义是 BA)int a[2][ ]={{1,2},{2,4}};B)int a[ ][2]={1,2,3,4};C)int a[2][2]={{1},{2},{3}};D) int a[2][ ]={{1,2},{3,4}};18.以下程序的输出结果是 Cmain(){ int a=5, b=4, c=6, d;printf(“%d\n”,d=a>b?(a>c?a:c):(b));}A)5 B)4 C)6 D)不确定19.TURBO C中int类型变量所占的字节数是 BA)1 B)2 C)3 D)420.以下选项中合法的用户标识符是 BA)long B)_2Test C)3Dmax D)A.dat21.下面选项中正确的是 CA)char str[12]; str=”xuesheng”;B)char str[12]; str={”xuesheng”};C)char str[12] =”xuesheng”;D)char str[12] =”xueshengnihao”;22.以下程序的输出结果是 Amain(){ int x=3, y=10 ;printf(“%d\n”, y=x/y) ;}A)0 B)1 C)3 D)不确定的值23.C语言程序中,main( )的位置 CA)必须作为第一个函数B)必须作为最后一个函数C)可以任意D)必须放在它所调用的函数之后24.以下程序的输出结果是 Amain(){ int a=4,b=5,c=0,d;d= !a && !b || !c;printf(“%d\n”,d);}A)1 B)0 C)非0的数D)-125.下列叙述中,错误的是 AA)主函数中定义的变量在整个程序中都是有效的B)复合语句中定义的变量只在该复合语句中有效C)其他函数中定义的变量在主函数中不能使用D)形参是局部变量26.若程序中定义了以下函数:Adouble myadd(double a,double b){return (a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A)double muadd(double a,b);B)double myadd(double,double);C)double myadd(double b,double a);D)double myadd(double x,double y);27.下面的函数定义正确的是 AA)float fun(float x;float y){return x*y;}B)float fun(float x,y){return x*y;}C) float fun(x,y) {int x,y;return x*y;}D) float fun(int x,int y){return x*y;}28.有以下程序:char fun(char x, char y){if (x<y) return x;return y;}main( ){int a=’9’,b=’6’,c=’7’;printf(“%c\n”,fun(fun(a,b),fun(b,c)));}程序的执行结果是 DA)函数调用出错B)8 C)9 D)729.假定a和b为int型变量,则执行以下语句后,b的值是 Da=1;b=10;do{b - =a;a++;}while(b--<0);A)9 B)-2 C)-1 D)830.若有以下定义和语句:#include <stdio.h>main( ){char *s1=”12345”,*s2=”1234”;printf(”%d\n”,strlen(strcpy(s1,s2)));}则输出结果是 AA)4 B)5 C)9 D)1031.以下程序的输出结果是 Bf ( int b[ ],int n){ int i,r=1;for ( i=0; i<=n; i++) r=r*b[i];return r;}main(){ int x,a[ ]={2,3,4,5,6,7,8,9};x=f (a,3);printf(“%d\n”,x);}A)720 B)120 C)24 D)632.有以下程序段:int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3],b;b=p[5];b中的值是 DA)5 B)6 C)8 D)933.有以下程序:main( ){char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\n”,strlen(p[4]));}执行后输出结果是 AA)2 B)3 C)4 D)534.有以下定义:#include <stdio.h>char a[10],*b=a;不能给数组a输入字符串的语句是 BA)gets(a); B)gets(a[0]);C)gets(&a[0]); D)gets(b);35.以下程序的运行结果是 A#include <stdio.h>main( ){int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12};int *p=a+5,*q=NULL;*q=*(p+5);printf(“%d %d \n”,*p,*q);}A)运行后报错B)6 6 C)6 12 D)5 536.设有以下语句:char str1[ ]=”string”,str2[8],*str3,*str4=”string”;则下面选项 C 不是对库函数strcpy的正确调用,此库函数用于复制字符串A)strcpy(str1,”HELLO1”);B)strcpy(str2,”HELLO2”);C)strcpy(str3,”HELLO3”);D)strcpy(str4,”HELLO4”);37.以下for语句构成的循环执行了 C 次#define N 2#define M N+1#define NUM (M+1)*M/2main( ){int i,n=0;for(i=1;i<NUM;i++){n++;printf(“%d”,n);}printf(“\n”);}A)5 B)6 C)8 D)938.以下程序的输出结果是 CA)11 B)20 C)21 D)31func( int a, int b){ int c;c=a+b;return c;}main(){ int x=6,y=7,z=8,r ;r=func ((x--, y++, x+y), z--);printf(“%d\n”,r);}39.对于字符串的操作,下列说法中正确的是 CA)可用赋值表达式对字符数组赋值,如char str[20];str=”aaaa”;B)若有字符数组a和b,且a>b,则strcmp(a,b)为非负数C)可用strcpy函数进行字符串的复制完成字符数组的赋值D)字符串”aaaa”在内存中占用4个字节长度40.下列选项中,关于数组的说法错误的是 BA)必须先定义,后使用B)定义数组的长度可以用一个已经赋值的变量表示C)数组元素引用时下标从0开始D)数组中的所有元素必须是同一种数据类型二、填空题1. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符’\101’是( A )2. 设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(6.000000)3. ’a’在内存中占( 1 )个字节4. 设x和y均为int型变量,则执行下面循环后,y值为( 6 )for(y=1,x=1;y<=50;y++){if(x>=10) break;if(x%2= =1) {x+=5;continue;}}5. 以下循环体的执行次数是( 1 )main( ){int i,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf(”%d\n”,i);}6. 若有定义:int a=8,b=5,c;执行语句c=a/b+0.4后,c的值为( 1 )7. 已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是( 1 )8. 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( -12 )9. 设x、y、t均为int型变量,则执行语句:x=y=3; t=++x||++y;后,y的值为( 9 )10. 将下列数学式改写成C语言的表达式(x= =y&&x<z ) x=y且x<z11. 设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为( 2 )12. 以下的for循环执行( 4 )次for(x=0,y=0;(y!=123)&&(x<4);x++);13. 已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,正确的输入语句是(scanf(“%d,%d,%d”,&I,&j,&k); )14. 若输入字符A,在以下while 语句执行后ch 的值是( 1 )while (ch = getchar( ) = = ‘A’);15. ”a”在内存中占( 2 )个字节16. 执行语句for(i=1;i++<4;);后,变量i的值是( 4 )17.C语言中形参的默认存储类别是(auto )18.若有定义: char ch; 使指针p 指向变量ch 的语句是(char *p=&ch ;)19.在函数调用语句f(f(x,y),z=x+y,(x,y));中,实参的个数是( 3 )20.若有定义: char ch; 且指针p已指向ch,通过指针p 给变量ch 赋值’a’的语句是(*p=’a’; )三、程序分析题1.main( ){int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):(b));}答:62.main( ){int k=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}答:6,43.#include <stdio.h>main( ){int i;for(i=1;i<=5;i++)switch(i%5){case 0:printf(“*”);break;case 1:printf(“#”);break;default:printf(“\n”);case 2:printf(“&”);}}答:#&&&*4.main( ){char c=’z’;printf(“%c”,c-25);}答:a5.main( ){int i=1,j=1,k=2;if((j++||k++) && i++)printf(“%d,%d,%d\n”,i,j,k);} 答:2,2,26.main(){ int i=1, j=3 ;printf(“%d\n”,i++);{ int i=0;i+=j*2;printf(“%d,%d,”,i,j );}printf(“%d,%d\n”,i,j );}答:1,6,3,2,37.main(){ int x= 15 ;while (x>10 && x< 50){ x++;if( x/3 ) {x++; break; }else continue;}printf(“%d\n”,x);}答:178.main( ){int i,j,a=0;for(i=0;i<2;i++){for(j=0;j<=4;j++){if(j%2) break;a++;}a++;}printf(“%d\n”.a);}答:49.#include <stdio.h>main( ){int a=2,c=5;printf(“a=%%d,b=%%d\n”,a,c);} 答:a=%d,b=%d10.#include <stdio.h>int isprime(int m){int i;for(i=2;m%i!=0;i++)return(i= =m);}main( ){int m=5;while(isprime(m)){printf(“yes!%d\n”,m);m++;}printf(“not!%d\n”,m);}答:yes!5not!611.main(){ int i=2,x=5,j=7;fun(j,6);printf(“i=%d;j=%d;x=%d\n”,i,j,x);}fun( int i,int j){ int x=7;printf(“i=%d;j=%d;x=%d\n”,i,j,x);}答:i=7;j=6;x=7i=2;j=7;x=512.#include <stdio.h>int m=1;int fun(int m){int n=1;static int i=1;n++;i++;return m+n+I;}main( ){int i;for(i=1;i<3;i++)printf(“%4d”,fun(m++));printf(“\n”);}答: 5 713.main(){int a=4,b=5,c=0,d;d=!a&&!b||!c;printf(“%d\n”,d);}答:114.double sub(double x,double y,double z) { y-=1.0;z=z+x;return z;}main(){ double a= 2.5,b = 9.0;printf ( “%f\n”,sub(b-a, a, a ) );}答:9.000000。

计算机C语言试卷含答案

计算机C语言试卷含答案

自信考试 诚信做人哈尔滨工业大学(威海)2011/2012学年春季学期C 语言程序设计 笔试试题(A 卷)题号 一二三四五六笔试(70%) 综合 (30%) 总分分数1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。

一、单项选择题。

请把答案填入下面框中,不允许出框线。

(本题16分,每小题1分)题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案1.有以下定义:int a; long b; double x,y;则下列正确的是( )。

A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x2. 以下C 语言标识符中,不合法的是( )。

A) _2 B) a_b C) a--b D) AaBc3. C 语言允许函数类型默认定义,此时该函数值隐含的类型是( )。

A) float B) int C) long D) double4. 若有定义 int (*p)[3];则下列说法正确的是( )。

A) 定义了基类型为int 的三个指针变量B) 定义了一个名为 *pt 、具有三个元素的整型数值C) 定义了一个名为pt 的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int 的具有三个元素的整型数组号学名姓注意行为规范 遵守考试纪律自信考试诚信做人5.有以下程序#include <stdio.h>main(){int a=1,b=0;if(!a)b++;else if(a==0)if(a) b+=2;else b+=3;printf("%d\n",b);}则程序输出( )。

A) 0 B) 1 C) 2 D) 36.有以下程序段#include <stdio.h>main(){int x=10;while(x--);printf("x=%d\n",x);}则最后的输出结果是:( )。

c语言试卷

c语言试卷

――――――――――――――――――――――――――――――――――一、单项选择题(每个选项1.5分,共33分)1. 以下关于switch语句和break语句的描述中,只有________是正确的。

A.在switch语句中必须使用break语句B.在switch语句中,可以根据需要使用或不使用break语句C.break语句只能用于switch语句中D.break语句是switch语句的一部分2.正确的标识符是_____A. ?aB. a=2C. a.3D. a_33. 若有定义int a[]={1,2,0};,请问a[a[a[0]]]= ________。

A. 0B. 1C. 2D. 34.语句printf(″s\\t″)的输出结果为_____A. s\\tB. s\tC. s\D. s5. 执行下列语句中,sum变量的值是_____int sum=0for(int i=0;i<10;i++,sum+=i);A. 45B. 55C. 0D. 编译错误6.已知有共用体变量data1定义如下:union data{ int i;char ch;float f;} data1; 则变量data1所占的内存存储空间可表示为_____A. size of(int)B. size of(char)C. size of(float)D. size of(int)+size of(char)+size of(float)7.若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示_____A. 已读到此文件末尾B. 未读到此文件的末尾C. 此文件已关闭D. 此文件尚未被打开8.以下c语言函数声明中,不正确的是_____A. void fun (int x, int y);B. fun (int x, int y);C. int fun (int x,y);D. char *fun (char *s);9.下列选项中,不合法的C语言关键字是_____A. autoB. defaultC. staticD. var10.若x=4,则x*=x+2的值为_____A. 36B. 24C. 18D. 2011函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为_____A. 1B. 2C. 4D. 512.设a为5,执行下列语句后,b的值不为2的是_____A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:113.假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是_____A. p2=**p1B. p2=*&p1C. p2=*p1D. p2=&*p114.以下运算符中,运算对象必须是整型的是_____A. /B. %=C. !=D. 〈=15.以下关于typedef的叙述中错误的是_____A. 用typedef可以增加新的类型B. 用typedef可以定义各种类型名,但不能用来定义变量C. 用typedef只是将已有的类型用新的标识符来代表D. 使用typedef有利于程序的通用和移植16.若执行完成下列语句:int a=3,b=6,c;c=a∧b<<2;则变量c的二进制值为_____A. 00011100B. 00010100C. 0001000D. 0001101117.设有定义int x=1; int y=‘a’<‘A’?x--:x++;,则变量y的值是_____A. 0B. 2C. 1D. 318.以下关于宏替换的叙述不正确的是_____A. 宏替换只是字符替换B. 宏名无类型C. 宏替换不占用运行时间D. 宏替换不占用编译时间19. 以下函数定义形式正确的是______。

C语言试题

C语言试题

试卷总分:100分共有题型:6种一、填空共15题(共计15分)第1题(1.0分)若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3该数组中下标最大的元素的值是【1】.答案:3第2题(1.0分)表达式18 && 53 的值是【1】.答案:1第3题(1.0分)c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:循环第4题(1.0分)预处理命令行都必须以【1】号开始.答案:#第5题(1.0分)设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i<=j;i++,j--) k=i+j;后,k的值为【1】.答案:10第6题(1.0分)程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.答案:0第7题(1.0分)执行下列语句后,*(p+1)的值是【1】.char s[3]="ab",*p;p=s;答案:b第8题(1.0分)若输入字符串:abcde<回车>,则以下while循环体将执行【1】次.While((ch=getchar())=='e') printf("*"); 答案:0第9题(1.0分)如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:void第10题(1.0分)C语言中,数组元素的下标下限为【1】.答案:0 第11题(1.0分)int a=1,b=2,c=3; 执行语句a=b=c;后a的值是【1】.答案:3第12题(1.0分)若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3该数组可用的最小下标值是【1】.答案:0第13题(1.0分)将数组a的首地址赋给指针变量p的语句是【1】.答案:p=a;第14题(1.0分)以下程序的输出结果为【1】,#include "stdio.h" main(){inta=010,j=10;printf("%d,%d\n",++a,j--);} 答案:9,10第15题(1.0分)假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是【1】.答案:6二、判断共15题(共计15分)第1题(1.0分)do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N第2题(1.0分)关系运算符的优先级高于算术运算符并且低于赋值运算符.答案:N第3题(1.0分)C程序中的关键字必须小写.答案:Y第4题(1.0分)若有说明int c;则while(c=getchar());是正确的C语句.答案:Y第5题(1.0分)数组中的元素类型不能不同答案:Y第6题(1.0分)a=(b=4)+(c=6) 是一个合法的赋值表达式.答案:Y第7题(1.0分)int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第8题(1.0分)若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真".答案:Y第9题(1.0分)int i,*p=&i;是正确的C说明语句.答案:Y第10题(1.0分)语句"int *pi,pj"定义了两个指针变量答案:N第11题(1.0分)如果函数值的类型和return 语句中表达式的值不一致,则以函数类型为准.答案:Y第12题(1.0分)C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第13题(1.0分)在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第14题(1.0分)语句 printf("%f%%",1.0/3);输出为0.333333.答案:N第15题(1.0分)若i =3,则printf("%d",-i++);输出的值为-4.答案:N三、单项选择共17题(共计34分)第1题(2.0分)下列程序段的输出结果为().float x=213.82631;printf("%3d",(int)x);A:213.82 B:213.83 C:213 D:3.8 答案:C第2题(2.0分)下列定义不正确的是(). A:#define PI 3.141592 B:#define S345 C:int max(x,y); int x,y; { }D:static char c; 答案:C第3题(2.0分)以下程序段的输出结果为().char c[]="abc";int i=0;dowhile(c[i++]!='\0');printf("%d",i-1); A:abc B:ab C:2 D:3 答案:D第4题(2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是().ch='a'; k=12; printf("%x,%o,",ch,ch); printf("k=%%%d\n",k); A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值C:61,141,k=%12 D:61,141,k=%d 答案:C第5题(2.0分)对 for(表达式1; ;表达式3) 可理解为().A:for(表达式1;0;表达式3) B:for(表达式1;1;表达式3)C:for(表达式1;表达式1;表达式3)D:for(表达式1;表达式3;表达式3) 答案:B第6题(2.0分)以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无 B:###### C:# D:### 答案:B 第7题(2.0分)下列语句的结果是(). main(){ int j;j=3;printf("%d,",++j);printf("%d",j++);}A:3,3 B:3,4 C:4,3 D:4,4 答案:D 第8题(2.0分)设a=12,且a定义为整型变量.执行语句a+=a-=a*=a;后a的值为().A:12 B:144 C:0 D:132 答案:C第9题(2.0分)执行语句 for(i=1;i++<4;); 后变量 i 的值是().A:3 B:4 C:5 D:不定答案:C第10题(2.0分)若有char a[80],*s=a;正确的输入语句是().A:scanf("%s",s); B:gets(*s);C:scanf("%c",s); D:getchar(s,80); 答案:A第11题(2.0分)以下函数调用语句中实参的个数是().func((e1,e2),(e3,e4,e5));A:2 B:3 C:5 D:语法错误答案:A第12题(2.0分)下列运算符中优先级最高的是().A:< B:+ C:&& D:!=答案:B第13题(2.0分)int a[10];给数组a的所有元素分别赋值为1、2、3、……的语句是().A:for(i=1;i<11;i++)a[i]=i;B:for(i=1;i<11;i++)a[i-1]=i;C:for(i=1;i<11;i++)a[i+1]=i;D:for(i=1;i<11;i++)a[0]=1; 答案:B第14题(2.0分)若k为int型变量,则以下程序段的执行结果是().k=-8567; printf("k=|%06D|\n");A:格式描述符不合法,输出无定值 B:输出为k=|%06D| C:输出为|0-8567| D:输出为|-8567|答案:B第15题(2.0分)在C语言中,要求运算数必须是整型的运算符是().A:^ B:% C:! D:> 答案:B第16题(2.0分)下列运算符中是C语言关系运算符的是().A:~ B:! C:& D:!= 答案:D第17题(2.0分)若有说明:inta[][3]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是().A:2 B:3 C:4 D:无确定值答案:B四、程序填空共2题(共计12分)第1题(6.0分)/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:以下程序的功能如(图1)。

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案一、选择题(每题2分,共40分)1、C语言源程序的基本单位是( )A.程序行B.语句C.函数D.字符2、C语言规定:在一个源程序中,main函数的位置()。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3、在下列字符列中,合法的标识符是( )A.p12&.aB.stud_100C. water$12D.88sum4、在C语言中,要求运算的数必须是整数的运算符是()A./B.!C.%D.= =5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a 的值是()A、3B、0C、9D、-126、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为()A、1B、2C、3D、47、执行下列程序时输入:1234567,程序的运行结果是()main(){int x,y;scanf(“%2d%*2c%1d”,&x,&y);printf(“%d\n”,x+y);}A.17B.46C.15D.98、下述程序的输出结果是() #includevoid main(){int x=-1,y=4;int k;k=++x<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}A.0,0,3B.0,1,2,C.1,0,3,D.1,1,29、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()main(){int x;scanf(“%d“,&x);if(x++>5)printf(“%d”,x);else printf(“%d\n”,x--);}A.7和5B.6和3C.7和4D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. 'a'<=c<= 'z'B. (c>= 'a')||(c<= 'z')C. ('a'<=c)and ('z'>=c)D. (c>= 'a')&&(c<= 'z')12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。

c语言试卷和答案3

c语言试卷和答案3

程序2 2, 4, 6, 8, 10
(5) 08是正确的整型常量。
(6) 设变量定义为 char s[ ]= “hello”则数组s中有6个元素。
(7) 若x是单精度实型变量,表达式(x=10/4)的值是2.5。
(8) 若变量已正确定义,表达式x=y=1符合C语言语法。
#include <stdio.h>
void sort( (26) )
{ int i, k, m, t;
for(i=0; i<n-1; i++) {
k=i;
for (m=i+1; m<n; m++)
if ( (27) ) k=m;
#define M(x,y) x/y
printf( “%d”, M(10,2+3));
A)2 B)2.0 C)5 D)8
(15)已知字符’c’的ASCII码为99,语句printf(“%d,%c”, ‘c’, ‘c’+1);的输出为 。
int f (int n)
{ static int k, s;
n- -;
for(k=n; k>0; k- -)
s+=k;
return s;
}
void main()
{ int k;
struct line
{ int num;
struct line *next;
};
void main()
{ int k;
struct line *p, *head;
head=NULL;
for(k=10; k>0; k--) {

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。

A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。

A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。

A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。

A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。

C语言试卷(含答案)

C语言试卷(含答案)

一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。

A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。

A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。

A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。

inta=5;while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。

A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。

c语言试卷

c语言试卷

一、选择题(请选择一个最合适的答案填在题前面的括号中,每题 2 分, 15题,计 30 分)1、一个 C 程序的执行是从( A)A、main ()函数开始,直到 main ()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main ()函数开始,直到最后一个函数结束2、下列符号可以作为变量名的是 ( C )A、+aB、*pC、_DAYD、next day3、若定义 int m=7,n=12; 则能得到值为 3 的表达式是( D )A、n%=(m%=5)B、n%=(m-m%5)2C、n%=m-m%5D、(n%=m)- (m%=5)54、为了避免嵌套的 if-else 语句的二义性, C 语言规定 else 总是与 (C ) 组成配对关系A、缩排位置相同的 ifB、在其之前未配对的 ifC、在其之前最近的未配对的 ifD、同一行上的if5、以下叙述中正确的是(A )A、函数的定义不可以嵌套,但函数的调用可以嵌套B、函数的定义可以嵌套,但函数的调用不可以嵌套C、函数的定义和调用都可以嵌套D、函数的定义和调用都不可以嵌套6、已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的字符常量‘\103’是 ( C )A 、AB 、BC 、CD 、D7、下列语句段中不是死循环的是( B )A、for (i=1;;i++)B、 i=100;Sum=sum+1; while(1){i=i%100+1;if(i==20)break;}D、s=3379;while (s++%2+3%2)s++;++k;} while (k<=0)8、以下关于字符数组的描述中错误的是( C)A、字符数组可以存放字符串B、字符数组中的字符串可以整体输入和输出C、可以在赋值语句中通过运算符“ = ”对字符数组整体赋值D、不可以用关系运算符对字符数组中的字符进行比较9、在定义了数组 int a[3][6];后,第 10 个元素是 BA、a[2][4]B、a[1][3]C、a[3][1]D、a[4][2]10、有以下程序#include "stdio.h"#include "string.h"main(){char s[]="sb\n\\\'\r\b";printf("%d,%d\n",sizeof(s),strlen(s));A}A 、8 ,7B 、8 ,8C 、7 ,8D 、7 ,711、在 C 语言的程序中,下列叙述错误的是( D)A、形参是局部变量B、不同的函数中,可以使用相同名称的变量C、在一个函数的内部,可以在复合语句中定义变量D、main ()函数中定义的变量在整个文件或程序中都有效12、C 语言中规定函数的返回值的类型是由( D )A、return 语句中的表达试类型所决定B、调用该函数时的主调用函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型所决定13、已知变量 a 被定义为 int 型变量,以下定义并初始化指针变量 p 的语句中正确的是(D)A、int p=a;B、int *p=*a;C、int p=&a;D、int *p=&a;题号一二三四总分得分C、k=0;do{14、若有定义 char s[3][4];以下对数组元素 s[i][j]的各种引用形式中错误的是 ( A )A、*(s[i]+j)B、*(s+i)+jC、s[i][j]D、*(*(s+i)+j)15、下面提供的一组函数中,用于按“记录”的方式进行输入和输出的是( C )B、fscanf(),fprintf()D、fgetc(),fputc()二、填空题(每题 2 分, 10 题,计 20 分)1、c 语言的语句必须以_____;_______结尾,C 语言中可以利用______强制类型转换_______将一个表达式的值转换成指定的类型。

c语言试卷及答案

c语言试卷及答案

C语言程序设计一、单项选择题1.以下叙述不正确的是______。

A)一个C源程序可由一个或多个函数组成B)一个C源程序一行内可以写多条语句C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面2.以下正确的C语言标识符是 __ ____。

A)%x B)a+b C)a123; D)test!3.以下对’\t’描述正确的是______。

A) ’\t’是两个字符B) ’\t’是一个字符C) ’\t’是一个字符串D)以上都不是4.C语言中的简单数据类型有______。

A)整型、实型、逻辑型B) 整型、字符实型、逻辑型C)整型、实型、字符型D) 整型、实型、字符型、逻辑型5.在C语言中,数字029是一个______。

A)八进制数B)十六进制数C)十进制数D)以上都不是6.以下选项中,当为x大于的奇数时,值为0的表达式是______。

A)x%2==0 B) x%2==1 C)x/2 D) x%2!=0 7.已知char c=’d’;,则printf(“%c”,’A’+(‘e’-c));的输出结果是______。

A)a B)e C)B D)D8.已知int a=1,b=3,t; ,若要将a和b变量中的数据进行交换,则下面正确的是______。

A)a=b; b=a; B)a=t; t=b; b=a;C)t=a; a=b; b=t; D)t=a; b=t; b=a;9.已知int a=2,b; ,则执行语句b=1.0/a;后,b的值是__ ____。

A)0.5 B)0 C)1 D)210.已知int i=1,j;,则执行语句j=i++;后,j的值是______。

A)1 B)2 C)-2 D)-111.已知int x=2,y=1,z;,则执行语句z=!x && --y;后,y的值是______。

A)0 B)1 C)2 D)-112.执行以下程序段后,输出结果是______。

int x=10;x+=(x=8);printf(“%d\n”,x);A)10 B)8 C)18 D)1613.已知int b; char s[8];,则正确的输入语句是______。

C语言试卷(含答案)

C语言试卷(含答案)

C语言试卷(含答案)一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。

A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)< p="">if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。

A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。

A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。

inta=5; while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。

A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。

C语言试卷1(含答案)

C语言试卷1(含答案)
else j=i;
putchar (j);
}
3、下面的函数功能是求x的y次方。
double fun(double x,int y)
{ int i;
double z=1;
for(i=1;i<=y;i++)
z=z*x;
return z;
}
4、先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将下标输出,若不存在这样的元素,则打印”Not found!”标志。
printf("\"%s\"\n",ch[1]);
}
A. "AAAA"B. "BBB"C. "BBBCC"D. "CC"
9.在C语言中,形参的缺省存储类是。
A. autoB. registerC. staticD. extern
10.以下程序的输出结果是。
main()
{ char x=040;
printf("%0\n",x<<1);
27.对break语句和continue语句,下面说法不正确的是。
A.break语句强制中断当前循环,退出循环体
B.break语句只能用在三条循环语句的循环体或switch语句中
C. 在没有循环情况下,continue语句能用在switch语句中
D.continue语句不能退出循环体
28.c语言允许if-else语句可以嵌套使用,规定else总是与配对。
A.&aa[0]+1B.&aa[1]C..&aa[0]++D. aa+1

C语言期末考试试卷附参考答案

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1)1.以下叙述中正确的是()。

A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点2.以下叙述中正确的是()。

A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C.main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3.以下叙述中正确的是()。

A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分4.以下有关for循环的正确描述是()。

A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5.对下面程序段的描述,正确的是()。

x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行一次C.循环执行两次D.有语法错误6.以下有关C语言数组说法正确的是()。

A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。

A.inta(20);B.inta[]={1,2,5,7,0};C.inta[n];D.inta[2]={1,2,4,6};8.在定义intb[2][10];之后,对b数组元素引用正确的是()。

A.b[0][9]B.b[2,3]C.b(1)(5)D.b[10][0]9.如有定义语句intc[]={1,5,3,4,6,7,0};,则数组c有()个元素。

c语言试卷(含答案)

c语言试卷(含答案)

一、选择题(26分)1. 正确的C语言标识符是(A)。

A._buy_2 B.2_buy C.?_buy D.buy?2. 以下选项中,合法转义字符的选项是(A)。

A.’\\’ B.’\018’ C.’xcb’ D.’\ab3、下列语句中,错误的是(B )A、#define PI 3.14159B、#include <math.h>;C、if(2);D、for(;;) if(1) break;4、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()A、 a>=10 or a<=0B、 a>=0|a<=10C、 a>=10 &&a<=0D、 a>=10‖a<=05、以下对break语句使用的正确描述是()A、可以出现在程序中的任何位置B、只能出现在循环结构中或switch结构中C、只能出现在switch结构中D、只能出现在循环结构中6. C语言程序的基本单位是(C)。

A.程序行 B.语句 C.函数 D.字符7、已知各变量的类型说明如下:()int m=6,n, a, b;unsigned long w=8;double x=3.14, y=0.12;则以下符合C语言语法的表达式是(A)。

A.a+=a-=(b=2)*(a=8) B. n=n*3=18C.x%3 D.y=float (m)8、已有定义:char x[]=“ab”,y[ ]={‘a’,’b’ };,以下叙述中正确的是( C)A、数组x和y的长度相同B、x数组长度小于y数组长度C、x数组长度大于y数组长度D、上述说法都不对9、设有定义“int x=3,y,*p=&x”,则下列语句中使y不为3的语句是(D )A、y=*&xB、y=*pC、y=xD、y=&x10、设x、y、z均为int型变量,则执行语句:x=y=3;z=++x||++y;后,y的值为()A、不定值B、4C、3D、111.有如下程序段:int x1,x2;char y1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是(A)。

C语言试卷及答案

C语言试卷及答案

for(i=0;c=s[i];i++)
if(c==’’) word=0;
else if(word==0)
{word=1;num++;}
printf(“%d\n”,num);
}
(A)2 (B)3 (C)4 (D)5
33.以下程序运行结果是 A

#include<string.h>
main() {char s[50]=”1234567”,*p=s; int i; i=*(p+5)-*(p+2); printf(“%d\n”,i*strlen(s)); }
(A)double (B)char (C)int (D)float
10. C 语言中要求操作数必须是整数的运算符是 B

(A)/ (B)%
(C)!= (D)=
11.用 scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是 A 。
(A)123,4 (B)123 4 (C)123;4 (D)
(C)C 语言本是没有输入输出语句。
(D)在对一个 C 程序进行编译的过程中,可发现注释中的拼写错误。
4.以下叙述不正确的是 D

(A)逗号运算符的运算级最低。
(B)ABC 和 abc 是两个不同的变量。
(C)若 a 和 b 类型相同,在执行 a=b 后,b 的自身值不变。
(D)‘a’和“a”是完全等价的常量。
(A)for(i=1,p=1;i<=5;i++) p*=i;
(B)for(i=1;i<=5;) { p=1;p*=i;i++;}
(C)i=1;p=1;while(i<=5) { p*=i;i++;}

c语言试卷

c语言试卷

;C 语言程序设计测试题姓名:成绩:一.填空:15 分1.在 scanf 函数的格式控制串中,转换说明符2.C 语言程序都是从3.函数体用4.c 语句都用5.标准库函数6.转义序列\n 表示、和函数开始执行。

结束。

结束。

在屏幕上显示信息。

符,它把光标定位在屏幕下一行的开始位置。

和 _____。

开始,用表示要输入一个整数。

7. 所有的程序都可以用三种控制结构编写。

这三种控制结构是8.用花括号组合在一起的多个语句称为9.10. 存储类别说明符有 auto、、循环结构在条件为真时反复执行一条语句或一组语句。

二.判断下述说法是否正断。

如不正确,说明理由,20 分。

1. printf 函数总是从新行的起始位置开始打印。

( )2. 计算机会把/*和*/之间的注释文本打印到屏幕上。

( )3. 在 printf 函数的格式控制串中使用转义序列\n 会把光标定位到屏幕上下一行的开始位置。

( )4. 所有的变量在使用前都必须予以声明。

( )5. 在声明变量时必须给出变量的类型。

( )6. C 语言认为变量 number 和 NuMbEr 是相同的。

()7. 声明语句可放在函数体中的任何位置。

()8. printf 函数的格式控制串之后的所有参数的前面都必须有&。

()9. 求余运算符%只能用于两个整数操作数。

()10. 算述运算*、/、+和一具有相同的优先级。

()三、选 择 题 , 30 分。

1. 在 C 语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。

设 一表达式中包含有 int 、long 、unsigned 、char 类型的变量和数据,则表达式最 后的运算结果是 A 、 intB 、 char类型数据。

C 、 unsignedD 、long。

D 、-1,655352. 若 int 型数据占 2 个字节,则以下语句的输出为int k=-1; A 、 -1,-1printf(“%d,%u\n”,k,k); B 、 -1,32767C 、-1,327683. 若 a, b 均为 int 型变量,x, y 均为 float 型变量,正确的输入函数调用 是。

C语言程序设计考试试题(附答案)

C语言程序设计考试试题(附答案)

C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案)一、选择题(共30题,每题2分,共60分)1. 下列哪个是C语言关键字?A. printB. variableC. whileD. calculate答案:C2. 在C语言中,下列哪个是合法的变量名?A. 1_helloB. _worldC. v-ariableD. continue答案:B3. 下列哪个是正确的C语言注释方式?A. // This is a commentB. # This is a commentC. /* This is a comment */D. <!-- This is a comment -->答案:C4. 下列哪个是正确的C语言函数定义格式?A. void addNumbers()B. addNumbers()C. function addNumbers()D. int addNumbers()答案:D5. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;float result = x / y;printf("%f", result);return 0;}```A. 2.5B. 2C. 2.000000D. 5答案:B6. 在C语言中,下列哪个是正确的if语句格式?A. if (x > 4) thenB. if (x > 4) { }C. if x > 4D. if (x > 4)答案:D7. 下列哪个是C语言中的逻辑运算符?A. ++B. &&C. %D. =答案:B8. 在C语言中,下列哪个是正确的for循环格式?A. for (x = 0; x < 5)B. for {x = 0; x < 5; x++}C. for (int x = 0; x < 5; x++)D. for (x = 0; x < 5;)答案:C9. 下列哪个是C语言中的自增运算符?A. ++B. +=C. =D. --答案:A10. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;x *= 3 + 4;printf("%d", x);return 0;}```A. 14B. 20C. 21D. 22答案:C11. 在C语言中,下列哪个是正确的switch语句格式?A. switch (x) {case 1;case 2;break;default;break;}B. switch (x) {case 1:case 2:break;default:break;}C. switch (x) case 1:case 2:break;default:break; D. switch (x) { case 1,case 2,break,default,break,}答案:B12. 下列哪个是C语言中的逗号运算符?A. &&B. !C. ,D. |答案:C13. 在C语言中,下列哪个是正确的数组声明?A. array[5]B. [5] arrayC. array[] = [5]D. int array[5]答案:D14. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 0; i <= 5; i++){printf("%d ", i);if (i == 3)continue;}return 0;}```A. 0 1 2 3 4 5B. 0 1 2 3 4C. 0 1 2 3 4 5 6D. 0 1 2 4 5答案:A15. 下列哪个是C语言中的求余运算符?A. /B. +C. %D. *答案:C16. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 4;int y = 5;if (x > 2 || y < 10){printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 || y < 10D. 4 5答案:A17. 在C语言中,下列哪个是正确的do-while循环格式?A. do (x < 5)B. do {x < 5} whileC. do {x < 5} while (x++)D. do {x < 5;} while (x < 5)答案:D18. 下列哪个是C语言中的逻辑非运算符?A. !B. &&C. <D. =答案:A19. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 1; i <= 10; i++){if (i % 2 == 0)continue;printf("%d ", i);}return 0;}```A. 1 2 3 4 5 6 7 8 9 10B. 1 3 5 7 9C. 2 4 6 8 10D. 1 2 4 8答案:B20. 下列哪个是C语言中的减法运算符?B. +C. -D. *答案:C21. 在C语言中,下列哪个是正确的数组初始化方式?A. int array[5] = {1, 2, 3}B. array[5] = {1, 2, 3}C. int array[] = {1, 2, 3}D. int array[5] = {1, 2, 3,}答案:C22. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 7;if (x > 2 && y < 10)printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 & y < 10D. x > 2 || y < 10答案:A23. 下列哪个是C语言中的除法运算符?A. /B. +C. %答案:A24. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 7;int y = (x > 5) ? 10 : 5;printf("%d", y);return 0;}```A. 7B. 5C. 10D. 15答案:C25. 在C语言中,下列哪个是正确的while循环格式?A. while (x < 5;)B. while {x < 5;}C. while (x < 5)D. while {x < 5}答案:C26. 下列哪个是C语言中的位运算符?A. ||B. &&C. !D. &答案:D27. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;int y = 3;if (x = y){printf("Equal");}else{printf("Not equal");}return 0;}```A. EqualB. Not equalC. 2D. 3答案:A28. 在C语言中,下列哪个是正确的goto语句格式?A. goto label;B. goto (label);C. gote labelD. go to label答案:A29. 下列哪个是C语言中的加法运算符?A. /B. +C. %D. *答案:B30. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;int result = x % y;printf("%d", result);return 0;}A. 2B. 1C. 3D. 0答案:B二、编程题31. 编写一个C语言程序,在屏幕上输出从1到100的所有偶数。

C语言期末考试试卷附参考答案

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1)1. 以下叙述中正确的是()。

A. C语言比其他语言高级B. C语言可以不用编译就能被计算机识别执行C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C语言出现的最晚,具有其他语言的一切优点2. 以下叙述中正确的是()。

A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C. main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。

A. C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4. 以下有关for循环的正确描述是()。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5. 对下面程序段的描述,正确的是()。

x=-1;do{x=x*x;}while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关C语言数组说法正确的是()。

A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。

A. int a(20);B. int a[ ]={1,2,5,7,0};C. int a[n];D. int a[2]={1,2,4,6};8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。

A. b[0][9]B. b[2,3]C. b(1)(5)D. b[10] [0]9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。

完整版C语言试卷及答案

完整版C语言试卷及答案

完整版C语言试卷及答案一、选择题部分(每题1分,共30分)1. 下列选项中,不是C语言基本数据类型的是:A. intB. doubleC. charD. boolean2. 在C语言中,以下哪个用于定义常量的关键字?A. constB. staticC. finalD. define3. 下面哪个选项是正确的C语言注释格式?A. /** 注释内容 */B. // 注释内容C. /* 注释内容 */D. # 注释内容4. 下列选项中,不是C语言的逻辑运算符的是:A. &&B. ||C. !D. %5. 在C语言中,以下哪个函数用于输出信息到屏幕上?A. scanf()B. printf()C. gets()D. puts()二、填空题部分(每题2分,共20分)1. 在C语言中,用于声明变量的关键字是_________。

2. 在C语言中,用于取一个整数的绝对值的函数是_________。

3. 下面这段代码的输出结果是_________。

```c#include <stdio.h>int main(){int a = 10;int b = 20;printf("%d + %d = %d\n", a, b, a + b);return 0;}```4. 在C语言中,用于按位取反的运算符是_________。

5. 下面这段代码的循环次数是_________。

```c#include <stdio.h>int main(){int i;for (i = 0; i < 5; i++){printf("%d ", i);}return 0;}```三、编程题部分(共50分)1. 编写一个程序,输入一个整数n(n>0),输出1到n之间的所有偶数。

2. 设计一个函数,接收两个整数参数a和b,返回它们的最大公约数。

3. 编写一个程序,实现斐波那契数列的前n项的求和。

C语言程序设计考试试卷附答案

C语言程序设计考试试卷附答案

C语言程序设计考试试卷附答案一、选择题1. 下列哪个不是 C 语言的数据类型?A. intB. charC. stringD. float答案:C2. 以下哪个关键字用于定义常量?A. constantB. varC. constD. define答案:C3. 在 C 语言的数组中,下标是从几开始的?A. 0B. 1C. -1D. 从任意整数开始答案:A4. 下面哪个运算符用于获取变量的地址?A. &B. *C. %D. #答案:A5. 下面的代码中,输出的结果是什么?```int i = 0;for (i = 0; i < 5; i++) {if (i == 3) {break;}printf("%d ", i);}```A. 0 1 2C. 0 1 2 3 4D. 0 1 2 4答案:A二、填空题1. 填写下面代码的输出结果:```char str[20] = "Hello";printf("%s", ___________);```答案:Hello2. 填写下面代码的输出结果:```int a = 10;int b = 20;int c = ___________;printf("%d", c);```三、编程题1. 编写一个程序,在屏幕上输出从 1 到 10 的所有数字。

答案:```c#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++) {printf("%d ", i);}return 0;}```2. 编写一个程序,计算从 1 到 100 所有偶数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1 到 100 所有偶数的和为:%d", sum);return 0;}```3. 编写一个程序,实现冒泡排序算法对数组进行升序排序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二级 C语言考试试卷(考试说明及第一部分计算机基础知识略)第二部分 C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内)21. 若有声明语句char s1[10]={0},s2[10]= "books";则能将字符串"books"赋给数组s1保存的表达式是21 。

A. s1=”books”;B. strcpy(s2,s1);C. s1=s2;D. strcat(s1,s2);22. 表达式(a=4*5,b=a*2),b-a,a+=2的值是22 。

A.2 B. 20 C. 22 D. 4223. 以下是一个自定义函数的头部,其中正确的是23 。

A. int fun(int a[ ],b)B. int fun(int a[ ],int a)C. int fun(int * a,int b)D. int fun(char a[ ][ ],int b)24. 以下数组声明语句中正确的是24 。

A.int n,a[n]; B. int a[ ];C. int a[2][3]={{1},{2},{3}};D. int a[ ][3]={{1},{2},{3}};25.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70000正确地保存在一个变量a中,该变量声明语句应当是25 。

A.int a; B. long int a;C. unsigned int a;D. unsigned long int a;26. 以下声明语句中,用于声明一个行指针变量的是26 。

A. int *p(int);B. int *p;C.int (*p)[3]; D. int (*p)(int);27. 已知A盘根目录下的一个文本数据文件data.dat中存储了100个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用依次fopen函数,已有声明语句FILE*fp;则fopen 函数的正确调用形式是27 。

A. fp=fopen(”a:\\data.dat”,”r+”);B. fp=fopen(”a:\\data.dat”,”w+”);C. fp=fopen(”a:\\data.dat”,”a+”);D. fp=fopen(”a:\\data.dat”,”w”);28. 在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中28 不能用作该变量的名字。

A.x B. y C. fabs D. fun#include<math.h>int y;main( ){int a=1;fun(a);}int fun(int x){ ;/* int型变量声明语句位置*/…/*若干执行语句*/}29.如有语句:int x,y=0,z,* p[3];p[0]=&x;p[1]=&y;p[2]=&z;以下表达式中有语法错误的是29 。

A.y++ B. p++ C. *++p[0] D. (*p[0])++30. 设有声明语句:int a[3][3]={1,2,3,4,5,6,7,8,9};以下语句中除30 外均能输出a[1][2]的值。

A.printf(“%d”,*(*(a+1)+2)); B. printf(“%d”,*(&a[2][0]-1));C. printf(“%d”,*(a[1]+2));D. printf(“%d”,*(a+1)[2]);二、填空题(将答案填写在答题纸的响应答题号内,每个答案只占一行)基本概念题(共5分)1.只能在循环体中出现的语句是(1)语句。

2.& 既可以用作单目运算符也可以用作双目运算符,其中用作单目运算符时表示的功能是(2)。

3.包含二目运算符的表达式可一般的表示为(x)op(y),其中op代表运算符x、y代表操作数。

若op 是“+”运算符,且x和y均为常量时,不能同时为(3)常量。

4.当(4)语句被执行时,程序的执行流程无条件地从一个函数跳转到另一个函数。

5.在函数内部声明局部变量时缺省了存储类型,该变量存储类型为(5)。

阅读程序写出运行结果题(共10分)6.以下程序段运行后,x、y、z的值分别是(6)。

int x=0,y=3,z=2;if(x++&&y++)z--;else if(x+1==6||y--)z++;7. 设有以下宏定义:#define N3#define Y(n) ((N+1)* n)则执行语句z=2 * (N+Y(5+1));后,z的值为(7)。

8.[程序]int x=1;main( ){ int y,k;y=f(3);printf(“%d\n%d”,x,y);}int f(int x){ if(x==3){ int x=2;return x;}else return x;}该程序运行后,输出x 的值是(8),y的值是(9)。

9.[程序]main(){int a[3][3]={1,2,3,4,5,6,7,8,9},m,k,t;for(m=0;m<3;m++)for(k=0;k<=m;k++)if((m+k)%2) t=a[m][k],a[m][k]=a[k][m],a[k][m]=t; for(m=0;m<3;m++){ for(k=0;k<3;k++)printf(“%d”,a[m][k]);printf(“\n”);}}该程序执行时输出第一行是(10),第二行是(11)。

10.[程序]#include<string,h>int convert(char s1[ ],char s2[ ],int *n1){ int i=0,j=0,k,s=0,len;int value=0;char tab[16]=”0123456789ABCDEF”;len = strlen(s1);if(len%4){ for(i=0;i<len%4;i++)s=s*2+s1[i]-‘0’;s2[j++]=tab[s];value=value*16+s;}while(i<len){ s=0;for=(k=0;k<4;k++) s=s*2+s1[i+k]-‘0’;s2[j++]=tab[s];value=value*16+s;i=r+4;s2[j]=’\0’;* n1=strlen(s2);return value;}main( ){ char ss1[ ]=”1001010”,ss2[10];int x,y;y=convert(ss1,ss2,&x);printf(“%d\n%d\n%s”,x,y,ss2);}该程序执行时输出第一行是(12),第二行是(13),第三行是(14)。

11.[程序]main( ){ int a[3][3],i,j;numlist(&a[0][0],9);for(I=0;I<3;I++){ for(j=0;j<3;j++)printf(“%d”,a[i][j]);printf(“\n”);}}numlist(int *p,int n){ int i;for(i=0;i<n;i++) p[i]=num(i);}num(int n){ if(n==0)return 1;return num(n-1)*2+1;}程序执行时输出的第一行是(15)。

完善程序题(共15分)12.程序功能:合并两个已经按照升序排列的一维数组。

Insert函数功能:将m插入x指向的含有n个元素的数组中,数组中n个元素已按升序排列,插入m后的n+1个元素仍保持有序。

void insert(int x[ ],int n,int m);main( ){ int a[10]={1,3,5,7,9},b[5]={2,4,8,16,32},k;for(k=0;k<5;k++){ insert(a, (16) ,b[k]);}for(k=0;k<10;k++)printf("%d",a[k]);}void insert(int x[],int n,int m){int i,j;if(m>x[n-1])(17) =m;else{for (i=; (18) ;i++);for(j=n;j>=i;j--)x[j]= (19) ;x[i]=m;}}13 程序功能:查找满足下列条件的m,n值。

给定正整数k,0<m<=k,0<n<=k,求使(n^2-mn-m^2)^2=1 且使n^2+m^2的值达到最大的值。

# include<stdio.h>main( ){ long m,n,k,s,flag=0;printf("input k:");scanf("%ld",&k);n=k;do{ m=_(20)_;do{ s=n*(n-m)-m*m;if(s*s==1) (21);else m--;} while(m>0&&! flag);if(m==0) (22);}while(n>0&&! flag);printf("m=%ld,n=%ld",m,n);}14 已知链表中结点的数据结构定义如下:# include<stdio.h>struct node{ int x;struce node *next;};函数loop功能:根据dir的值循环移位head指向的链表中的所有结点,当dir为正整数时实现循环右移一次,否则循环左移一次。

函数返回链表首结点的指针。

例如,移位前的链表数据:head->1->3->5->4。

右移一次后的链表数据:head->4->1->3->5。

算法提示:循环右移时,将链表最后一个结点删除,再将其插入到链表首部;循环左移时,将链表的第一个结点删除,再将其连接到链表尾部。

struct node *loop(struce node *head,int dir){ struct *p1,*p2;p1=head;if(p1==null||p1->next==null) return head;if(dir>=0){while(p1->next){ p2=p1;p1=p1->next;}(23)= null;p1->next= (24);head=p1;}else{ head= (25);p2=head;while(p2->next)p2=p2->next;(26);p1->next=null;}return head;}15 程序功能:在一行文本中查找给定的单词。

相关文档
最新文档