C语言测试

合集下载

c语言测试题目及答案

c语言测试题目及答案

c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。

C语言测试题及答案

C语言测试题及答案

C语言测试题及答案C语言测试题及答案古今来许多世家,无非积德。

天地间第一人品,还是读书。

以下是店铺为大家搜索整理的C语言测试题及答案,希望能给大家带来帮助!C语言测试题及答案篇11.(A )是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。

A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。

A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。

C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。

A、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。

A、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。

A、 %xB、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。

A、print _3d db8 aBcB、Iam one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。

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语言高考测试题及答案

对口c语言高考测试题及答案1. 以下哪个选项是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable!name答案:C2. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. int答案:D3. 以下哪个选项是C语言中正确的注释方式?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment */答案:A4. 在C语言中,用于定义一个整型数组的语法是什么?A. int array[10];B. int [10] array;C. int array = 10;D. int array[10] = {0};答案:A5. C语言中,哪个运算符用于计算两个整数的和?A. +B. -C. *D. /答案:A6. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str = "Hello";C. char str[] = 'Hello';D. char str[] = {"Hello"};答案:A7. C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if x > yC. if (x > y)D. if x > y答案:A8. 在C语言中,以下哪个选项是正确的循环结构?A. for (int i = 0; i < 10; i++)B. for (int i = 0; i < 10; i++)C. while (i < 10)D. do-while (i < 10)答案:A9. C语言中,以下哪个函数用于计算数组的长度?A. sizeofB. lengthC. sizeD. count答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. openfileC. fileopenD. file答案:A11. C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student = {int id;char name[50];};C. struct Student {int id;char name;};D. struct Student = {int id;char name[50];};答案:A12. 在C语言中,以下哪个选项是正确的指针声明方式?A. int *ptr;B. int ptr*;C. int *ptr = 0;D. int ptr = 0;答案:A13. C语言中,以下哪个选项是正确的递归函数调用?A. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}B. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n);}C. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}D. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}答案:A14. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159D. #define PI = 3.14159答案:A15. C语言中,以下哪个选项是正确的枚举定义方式?A. enum Color {RED, GREEN, BLUE};B. enum Color {RED, GREEN, BLUE} color;C. enum Color {RED, GREEN, BLUE};D. enum Color {RED, GREEN, BLUE} color;答案:A。

c语言测试题目及答案

c语言测试题目及答案

c语言测试题目及答案一、选择题1. C语言中用于表示逻辑“与”操作的关键字是()。

A. &&B. ||C. &D. &&=答案:A2. 下列哪个选项是C语言中的合法整型常量?A. 0x10FB. 0xA1BC. 8191D. -0X1答案:A3. 在C语言中,若定义了int a[5],则对数组元素的正确访问方式是()。

A. a[-1]B. a[5]C. a(2)D. a(-3)答案:B4. 下列哪个函数不能正确计算字符串长度?A. strlen()B. strlength()C. strlenf()D. strsize()答案:B5. 在C语言中,若要交换两个变量的值,以下哪种方法是正确的?A. 使用第三个临时变量进行交换B. 直接利用加减法进行交换C. 利用位运算进行交换D. 以上都是答案:D二、填空题1. 在C语言中,使用关键字________声明一个全局变量,其作用域是整个程序。

答案:extern2. C语言中的switch语句中,case标签后面必须跟________类型的表达式。

答案:整型3. 使用C语言的printf函数输出字符串时,需要使用格式说明符________。

答案:%s4. 在C语言中,定义一个指向函数的指针,需要使用关键字________。

答案:指针5. 若要在C语言中定义一个无限循环,可以使用while循环配合________关键字实现。

答案:break三、简答题1. 请简述C语言中的指针和引用的主要区别。

答:指针是一个变量,其存储的是另一个变量的地址;而引用是指针的别名,它必须在定义时初始化,且不能重新指向另一个变量。

指针可以直接被修改以指向不同的地址,而引用则总是指向初次被初始化的那个变量。

2. 解释C语言中的动态内存分配及其优点。

答:动态内存分配是指在程序运行时,根据需要通过malloc、calloc、realloc等函数动态地分配和释放内存。

C语言基础知识测试题 全面完整

C语言基础知识测试题 全面完整

C语言基础知识测试题全面完整c语言基础知识测试题全面完整基础知识测试题一.单项选择题1.以下不正确的c语言标识符是(d)a.abcb.abcc.a_bcd.ab.c2.以下正确的c语言标识符是(c)a.%xb.a+bc.a123d.test!3.一个c语言程序的继续执行从(a)。

a.main()函数已经开始,直至main()函数完结b.第一个函数已经开始,直至最后一个函数完结c.第一个语句已经开始,直至最后一个语句完结d.main()函数已经开始,直至最后一函数完结4.在c语言程序中,main(c)的边线()。

a.必须做为第一个函数b.必须作为最后一个函数c.任意d.必须放到它所调用的函数之后5.一个c语言程序就是由(b)。

a.一个主程序和若干个子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成6.c语言源程序的基本单位是(b)。

a.过程b.函数c.子程序d.标识符7.编辑程序的功能就是(a)。

a.创建并修正程序c.将c源程序编译成目标程序d.调试程序e.命令计算机继续执行选定的操作方式8.c编译程序就是(d)。

a.c语言程序的机器语言版本b.一组机器语言指.d.将c源程序编译成目标程序的程序f.由制造厂家提供更多的一套应用软件b9.不属于字符型常量的就是(d)a.'a'b.\'\\x72'10.设charch;以下恰当的赋值语句就是:(b)a.ch='123';b.ch='\\xff';c.ch='\\08';d.ch=\11.以下并使i的运算结果为4的表达式就是(d)a.inti=0,j=0;(i=3,(j++)+i);b.inti=1,j=0;j=i=((i=3)*2);c.inti=0,j=1;(j==1)?(i=1):(i=3);d.inti=1,j=1;i+=j+=2;a12.若t为double类型,表达式t=1,t+5,t++的值是(d)a.1b.6.0c.2.0d.1.0c13.设整型变量m,n,a,b,c,d均为1,继续执行“(m=a>b)&&(n=a>b)”后m,n的值就是(b)a.0,0b.0,1c.1,0d.1,1b14.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(ca.3,3,2b.3,2,2c.3,2,3d.2,3,2b15.若a=1,b=2,c=3,d=4,则条件表达式a16.设intn=7;则++n+1==9的结果是(c)a.trueb.falsec.1d.017.设a=2,b=2;则++a+b的结果就是(d),a的结果就是(b),b的结果就是(a)a.2b.3c.4d.518.设a=2,则执行b=a==!a;语句后,b的结果是(a)a.0b.1c.2d.319.建有以下语句,则c的二进制值就是()chara=3,b=6,c;c=a^b<<2;a.00011011b.00010100c.00011100d.0001100020.在c语言类型说明中,int、char、short等类型的长度是(a)a.固定的b.由用户自己定义的c.任意的d.与机器字的长度有关的二.填空题1.c语言中的标识符就可以由三种字符共同组成,它们就是、、。

C语言测试题及答案

C语言测试题及答案

一、选择题1.语句int a=10,*point=&a; D 其值不为地址。

A. pointB. &aC. &pointD. *point2.若p为指针变量,y为变量,则y = *p++;的含义是 A A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 BA. ”visual C++”B.str的首地址C. \nD.”v”4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为AA.T,Father,FB.Teaher,F,FatherC. Teacher,Father,FatherD.语法错,无输出5.下列说明或赋值语句,不正确的是 CA. char *p;p=”Visual C++”;B. char p1[12]={‘v’,’i’,’s’,’u’};C. char p2[12];p2=”Visual C++”D. char p3[]=”Visual”;6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 BA.p+=3*4+3B.p+=2*4+3C. p+=(3*4+3)*sizeof(int)D.p+=(2*4+3)*sizeof(int)7.语句int i,*p1,**p2;以下语句语法不正确的是 BA.p1=&i;B. p2=&i;C.p2=&p1;D.i=’\0x23’;8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能..把结点b连接到结点a之后的语句是 BC. p->next=&b;D.(*p).next=q;9.下面正确的语句是 AA. int a[3][4],(*p)[4]; p=a;B. int a[3][4],*p[4]; p=a;C. int a[3][4],*p; p=a;D. int a[3][4],**p;*p=a;10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 BA.fp=fopen("a:\\aa.dat","ab");B. fp=fopen("a:\\aa.dat","a");C. fp=fopen("a:\\aa.dat","r+");D. fp=fopen("a:\\aa.dat","w");11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, BA.函数返回值100B. 函数返回值150C. 函数返回二个值100和150D. 语句return 100,150;语法错.12.数组作为函数的形参时,把数组名作为实参,传递给函数的是 AA.该数组的首地址B. 该数组的元素个数C. 该数组中的各元素值D. 该数组的大小13.执行以下语句序列:则 Aenum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //Ac1=Mon; //Bprintf(“%d”,c1);A.输出1B.输出2C.输出0D. B行语法错14.执行以下语句序列:则 Cchar *p1=”Speaking”; //Achar *p2=”English”; //Bchar *p3=”a piece of cake”; //Cchar *str[]={p1,p2,p3}; //Dprintf(“%c”,*(str[0]+1));A.输出EnglishB.输出SpeakingC.输出pD. D行语法错二、填空题1.(2*2分=4分)下面程序的运行结果为16 、 2void main( ){static int a[3][2]={{12},{14,16},{1,2}};int *p=a[1];printf(“%d\n”,*(p+1));printf(“%d\n”,*(p+3));}2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为11 ,*(*(p+1)+1)的值为7static int b[3][2]={1,3,5,7,9,11};int (*p)[2];p=b;3.(1*4分=4分)下面程序的运行结果为26#include<stdio.h>void sub(int *x,int i,int n){if(n<=i)sub(x,i,3*n);*x+=n++; //相当于*x=*x+(n++)}void main( ){int x=0;sub(&x,12,2);printf(“%d”,x);}4.(2*2分=4分)以下程序运行结果为_ Hello,world _、ello,world void main(){char *p,*q;char str[]="Hello,World\n";q = p = str;p++;printf(“%s\n”,q);printf(“%s\n”,p);}5. (1*4分=4分)以下程序运行结果是__121232343454_________ void main(){short ar[5]={1,2,3,4,5 };short * par=&ar[1];int i;for(i=0; i<4; i++){printf(“%d %d %d”,ar[i],par[i],*(ar+i));}}6.(2*2分=4分) 以下程序运行结果是__200 100_____void swap2(int *x,int *y){int t;t=*x;*x=*y;*y=t;}void main( ){ int a=100,b=200;swap2(&a,&b);printf(“%d\t%d”,a,b);}7.(3*2分=6分)void fun(int n, int *s){ int f1,f2;if(n= =1||n= =2)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf(“%d\t%d\n”,f1,f2);}}void main( ){ int x;fun(4,&x);printf(”x=%d\n”,x);}程序输出的第一行是1 1 第二行是4 1 最后一行是x=108. (3*2分=6分)void f(int *q1,int *q2,int *q3){*q3=*q1+*q2;}void main( ){ int i,j,a[3][3]={1,1},*p1=a[0],*p2=a[0]+1,*p3=a[0]+2;for(i=2;i<9;i++)f(p1++,p2++,p3++);for(i=0;i<3;i++){ for(j=0;j<3;j++)printf(“%d”,a[i][i]);printf(’\n’);}}程序输出的第一行是111 第二行是555 最后一行是343434 9.(2*3分=6分)int f(int x,int y){return x*y;}void main( ){ int i,j,(*fun)(int,int);fun=f;for(i=1;i<4;i++){ switch(i){case 1:case 2: j=(*fun)(i,i+1);break;case 3: j=(*fun)(i-1,i+2);break;}printf(”j=%d”,j);}}程序输出的第一行是j=2 第二行是j=6 最后一行是j=10三、完善程序1.(2*3分=6分)以下min 函数的功能是:在非空单向链表中查找结点数据域为最小的值,并作为函数返回值.链表如下.struct NODE{int data;NODE *next;};int min(NODE *first){NODE *p;int m;p=first;m=p->data;for(p=p->next;p!=NULL;p= p->next)if(m> p->data)m=p->data;return m;}2.(3*2分=6分)以下程序求二维数组的平均值float average(float (*p)[4],int n){float sum=0;for(int i=0; i<n ;i++){for(j=0;j<4;j++)sum+= (*p)[j] 或 *(*p+j) ;p++;}return sum/(n*4);}void main( ){ float score[3][4]={{56,65,70,76},{89,97,52,81},{90,99,91,86}};printf(”平均值=%f ”,average(score, 3 ));}3. (2*3.5分=7分)以下程序实现将以L 为头指针的链表逆置(设结点个数n>2),即将链表头当链表尾,链表尾当链表头。

C语言测试题(附有详细解析)

C语言测试题(附有详细解析)

C语言测试题(附有详细解析)一、选择题1. 以下哪个选项是C语言的关键字?A. ifB. sizeofC. structD. include解析:C语言中,关键字是指被C语言本身定义的具有特定意义的单词。

选项A的`if`是关键字,用于条件判断;选项C的`struct`是关键字,用于定义结构体;选项D的`include`实际上是预处理指令的一部分,不属于关键字。

选项B的`sizeof`是运算符,用于计算数据类型或变量的大小。

因此,正确答案是A、C。

2. 在C语言中,以下哪个选项表示整型变量?A. charB. intC. floatD. double解析:在C语言中,`int`类型用于存储整数。

选项A 的`char`用于存储字符;选项C的`float`和选项D的`double`用于存储浮点数。

因此,正确答案是B。

3. 以下哪个选项表示逻辑运算符?A. `++`B. `--`C. `&&`D. `%`解析:逻辑运算符用于连接多个条件表达式,包括与运算符`&&`、或运算符`||`和非运算符`!`。

选项C的`&&`是逻辑与运算符。

选项A的`++`和选项B的`--`是算术运算符,用于自增和自减;选项D的`%`是取模运算符。

因此,正确答案是C。

二、填空题1. 在C语言中,定义一个整型变量`a`并赋值为10的代码是______。

解析:定义整型变量`a`并赋值为10的代码如下:```cint a = 10;```2. 以下代码的输出结果是______。

```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++ + ++x);return 0;}```解析:在C语言中,`x++`是先使用x的值,然后x自增1;`++x`是先x自增1,然后使用x的值。

因此,`x++ + ++x`的执行过程如下:- `x++`,此时x的值为5,输出5;- `++x`,此时x的值为6,输出6;- 最终输出结果为11。

C语言综合测试题(题目)

C语言综合测试题(题目)

选择题(每题2分,共计100分)1.分析下面的C程序, 输出结果是()#include<stdio.h>void main(){int num=0;while(num<=2){printf("%d ",num);num++;}}A. 1 2 3B.0 1 2C. 2 3D. 1 22.以下对二维数组a的正确说明是()。

A、 int a[3][];B、 floatf a(3,4);C、 double a[1][4];D、 float a(3)(4);3.要将20赋值到数组Num的第三个元素,正确的方法是()A.Num[3]=20B.Num[2]=20C.Num[4]=20D.[3] Num=204.在C语言中,已知字母A的ASCII码是65,则执行语句:char ch='A'+3; 后ch的值为()A.不能确定B.68C. CD. D5.以下描述中正确的是()。

A、由于do-while循环中循环体语句只能是-条可执行语句,所以循环体内不能使用复合语句B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,-定要有能使while后表达式值变为零("假")的操作D、do-while循环中,根据情况可以省略while6.在C语言中,要求运算数必须是整型的运算符是()A、 /B、 ++C、 !=D、%7.以下程序段()x= -1;do{x=x*x;}while(!x);A、是死循环B、循环执行二次C、循环执行-次D、有语法错误8.在C语言中,下列正确的字符型常量是()A."f"B.'9'C.#D.3659.在C语言中,下面()是逻辑运算符中优先级最高的。

A.!B.&&C.||D.|E.&10.以下述叙不正确的是()A.一个C源程序可以由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中注释说明只能位于一条语句的后面11.为了避免在嵌套的条件语句If-else中产生二义性,C语言规定else子句,总是与()配对。

c语言分支程序设计测试题目及答案

c语言分支程序设计测试题目及答案

c语言分支程序设计测试题目及答案1. 单选题:以下哪个关键字用于C语言中的条件语句?A. ifB. elseC. whileD. for答案:A2. 判断题:以下代码段能否正确判断一个整数是否为偶数?```cint num = 10;if (num % 2 == 0)printf("偶数");elseprintf("奇数");```正确错误答案:正确3. 填空题:在C语言中,以下代码段的功能是____。

```cint a = 5;if (a > 0)printf("正数");else if (a == 0)printf("零");elseprintf("负数");```答案:判断变量a的正负4. 简答题:请解释C语言中的三元运算符的用法。

答案:C语言中的三元运算符是 `条件表达式 ? 表达式1 : 表达式2`,其中条件表达式为真时,执行表达式1,否则执行表达式2。

5. 编程题:编写一个C语言程序,判断用户输入的年份是否为闰年。

```c#include <stdio.h>int main() {int year;printf("请输入一个年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) printf("%d是闰年。

\n", year);elseprintf("%d不是闰年。

\n", year);return 0;}```6. 多选题:以下哪些条件可以使得if语句执行其内部代码块?A. 条件表达式为真B. 条件表达式为假C. 条件表达式返回非零值D. 条件表达式返回零值答案:AC7. 改错题:以下代码段中存在错误,请指出并修改。

c语言试卷

c语言试卷

c语言试卷(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--;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语言的源程序文件扩展名通常是什么?A. .txtB. .exeC. .cD. .java(答案)C二、以下哪个是C语言中的标准输入输出库?A. math.hB. string.hC. stdio.hD. stdlib.h(答案)C三、在C语言中,int类型数据通常占用多少个字节?A. 1B. 2C. 4D. 8(答案)C(注:这取决于具体系统和编译器,但在大多数现代系统上,int通常是4个字节)四、以下哪个是C语言中的逻辑与运算符?A. &B. &&C. |D. ||(答案)B五、在C语言中,如何表示一个常量字符串?A. 使用单引号括起来,如'hello'B. 使用双引号括起来,如"hello"C. 使用花括号括起来,如{hello}D. 使用方括号括起来,如[hello](答案)B六、以下哪个是C语言中的循环结构?A. if-elseB. switch-caseC. forD. while-do-while(注:此选项表述不严谨,但为保持原意,选择最接近的答案)(答案)C(注:实际上D也是循环结构的一种,但C是更直接且无误的答案)七、在C语言中,数组名表示什么?A. 数组的首地址B. 数组的第一个元素C. 数组的长度D. 数组的类型(答案)A八、以下哪个是C语言中的条件运算符?A. ?:B. ||C. &&D. !(答案)A九、在C语言中,如何定义一个指向整型变量的指针?A. int p;B. int p;C. *int p;D. int * p;(答案)A(注:D也是正确的,但在C语言中,通常更推荐使用A这种紧凑的格式)十、以下哪个是C语言中的标准输出函数?A. scanf()B. printf()C. getchar()D. putchar()(答案)B。

春考c语言技能测试题及答案

春考c语言技能测试题及答案

春考c语言技能测试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述,错误的是:A. C语言是一种高级编程语言B. C语言可以直接被计算机执行C. C语言支持结构化编程D. C语言具有丰富的数据类型答案:B2. 在C语言中,用于定义一个整型数组的语句是:A. int a[10];B. int a=10;C. int a[];D. int [10]a;答案:A3. 下列哪个关键字用于定义一个函数?A. ifB. forC. whileD. void答案:D4. 在C语言中,用于输入数据的函数是:A. printf()B. scanf()C. fprintf()D. sprintf()5. 下列哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A6. 在C语言中,用于定义一个字符型变量的关键字是:A. intB. charC. floatD. double答案:B7. 下列哪个选项是正确的注释方式?A. // 这是一个注释B. /* 这是一个注释 */C. //* 这是一个注释D. /* 这是一个注释答案:B8. 在C语言中,用于输出数据的函数是:A. scanf()B. printf()C. fprintf()D. sprintf()答案:B9. 下列哪个选项是C语言中的逻辑与运算符?B. ||C. =D. +=答案:A10. 在C语言中,用于定义一个浮点型变量的关键字是:A. intB. floatC. charD. double答案:B二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语句是:int _______ ; 答案:变量名2. 用于定义一个字符串常量的符号是:_______ ;答案:"字符串"3. 在C语言中,表示逻辑或的运算符是:_______ ;答案:||4. 用于定义一个浮点型数组的语句是:float _______ [10];答案:数组名5. 在C语言中,表示逻辑非的运算符是:_______ ;答案:!6. 用于定义一个字符型数组的语句是:char _______ [10];答案:数组名7. 在C语言中,用于计算两个数的差的运算符是:_______ ; 答案:-8. 用于定义一个整型指针的语句是:int *_______ ;答案:指针名9. 在C语言中,用于计算两个数的乘积的运算符是:_______ ; 答案:*10. 用于定义一个浮点型指针的语句是:float *_______ ;答案:指针名三、编程题(每题10分,共20分)1. 编写一个C语言程序,计算并输出两个整数的和。

c语言智商测试题及答案

c语言智商测试题及答案

c语言智商测试题及答案一、选择题1. 以下哪个是C语言中正确的数据类型?A. intB. floatC. doubleD. All of the above答案:D2. C语言中,哪个关键字用于定义一个函数?A. ifB. forC. functionD. void答案:D3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. hello worldD. "hello" "world"答案:A二、填空题4. 在C语言中,用于定义常量的宏定义命令是________。

答案:#define5. 以下代码段的输出结果是________。

```c#include <stdio.h>int main() {int a = 10;printf("%d", a++);return 0;}```答案:10三、简答题6. 简述C语言中数组的定义和初始化方法。

答案:在C语言中,数组可以通过指定数据类型和元素数量来定义。

例如,`int arr[5];` 定义了一个名为arr的整型数组,包含5个元素。

数组可以通过花括号包含初始化值来初始化,例如:`int arr[5] = {1, 2, 3, 4, 5};`。

四、编程题7. 编写一个C语言程序,实现输入两个整数,输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum);return 0;}```五、逻辑题8. 假设有一个C语言程序,其中包含以下代码段:```cint x = 10;if (x > 5) {x += 5;} else {x -= 5;}```请分析执行这段代码后,变量x的值是多少?答案:执行这段代码后,变量x的值是15。

C语言试题

C语言试题

C语言测试一、选择题1.选出作为C语言用户标识符的一组是()A.sum,define,WORDB. a1,-abc,CASEC. a3_b3,_123,maxD.Num1,2a,m_12.已知代码如下,则B的值为()#define A 5+3 #define B A*AA.23B. 19C. 64D.不确定3.若变量已正确定义并赋值,下面符合C语言语法的表达式()A.Int 18.5%3B. a=a+=c+bC. a:=b+1D. b=c+24.将整型变量a和b中的数进行交换,下面选项中,错误的是( )t=a;a=b;b=t B. t=b;b=a;a=t C. a=a+b;b=a-b;a=a-b D. a=t;t=b;b=a5. 表达式a=3*5,a*4,a+5的值为()A. 20B. 15C. 65D. 106. 设有int a=11;则表达式a++*1/3的值为()A. 4B.11C. 12D. 37. 以下程序代码运行后输出的结果是()main(){char c1=’6‘,c2=’0‘;printf(“%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);}A. 因输出格式不合法,输出出错信息B. 6,0,6,102C. 6,0,5,7D. 6,0,7,68. 关于putchar()函数,错误的是()A. putchar(‘\n’);B. putchar(‘a’)C. putchar(“97”);D. putchar(65)9. 有以下语句,输入“abc”,则输出的结果是()char ch;ch=getchar();putchar(ch);0A. a b cB. aC. 97D. abc10. 已知;a=2,b=3,c=4,则以下选项中值为0的表达式为()A. c>b>aB.aC. a+1==bD. c=b+111. 以下程序代码运行输出的结果是()main (){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf(”%d\n”,d);}A. 1B. aC. zD. Z12. 以下程序代码运行后输出的结果是()main(){int i,sum;i=2;sum=0;while(i<10);{sum+=I;printf(“%d\n”,sum);}A.0B. 20C. 死循环D. 程序错误13. 以下程序代码运行后输出的结果是()main(){int i,sum;i=10;while(i>=1){sum+=i;i--;}printf(”%d\n“,sum);}A.54B. 45C. 55D. 无法确定14.以下程序代码运行后输出的结果是()main(){int n=9;While(n>5){n--;printf(”%d“,n);}}A.876B. 8765C. 9876D. 98715. 以下程序代码运行后输出的结果是()main(){int i;for(i=1;i<=40;i++){if(i++%5==0)If(++i%8==0)printf(“%d”,i);}printf(“%d”,i);}printf(“\n”);}A.24B. 32C. 40D. 516. 若:int a=0,b,*p=&b,*q=&a;则下面赋值语句中与b=a;语句等价的是()A. p=q;B. p=*q;C. *p=&n1;D. *p=*q;17. 能正确表示逻辑关系;a大于等于10或a小于等于0的C语言表达式是()A. a>=10 or a<=0B. a>=10 && a<=0C. a≥0||a≤10D. a>=10||a<=018. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()main(){ int m;scanf(“%d”,m);if(m++>5)printf(“%d”,m);elseprintf(“%d\n”,m--);}A. 7和5B. 6和3C. 6和4D. 7和419. 以下程序代码运行后输出的的结果是()#include<stdio.h>{ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 2;c++;break;case 4;c+=2;break;}printf(“%d\n”,c);}A. 5B. 3C. 9D. 720. 下列选项中能正确定义数组的语句是()A. int year[0…2012]B. int year[ ]C. int N=2012;D. #define N 2012int year [N]; int year [N];21. 以下能对一堆数组a进行正确初始化的语句是()A. int a[5]=(0,0,0,0,0);B. int a(5)={5};C. int a [ ]={1,2,3};D. int a[ ]={‘5*1’};22. 若有定义;int a=911,*b=&a;则printf(“%d\n”,*b);输出的结果是()A. 无确定B. 912C. 911D. a的地址是23. 执行以下程序段后,a的值为()int*p,a=10,b=5;p=&a;a=*p+b;A.15B. 10C. 5D. 编译出错24. 以下程序代码运行后,a的值为()main(){ int a,k=4,m=6;int *p1=&k;int *p2=&m;a=(p1==p2);printf(“%d\n”,a);}A. 1B. 0C. 4D. 运行时出错,a无定值二、填空题1. 合法的标识符只能由________、_________和_________组成,起始字符必须为_____和_______2. 15%4结果_______15%-4结果_________-15%4结果___________。

C语言期末考试测试试卷(较难)

C语言期末考试测试试卷(较难)

一、选择题(每题2分,共20分)1. 以下关于指针的说法中,错误的是()A. 指针是一个变量,其值为另一个变量的地址B. 指针变量的值可以改变,但其指向的内存地址不能改变C. 指针变量的类型决定了其所指向的数据类型D. 指针变量可以进行算术运算2. 以下关于结构体的说法中,正确的是()A. 结构体变量的成员可以是另一个结构体类型B. 结构体变量的大小等于其所有成员大小之和C. 结构体变量可以直接赋值给另一个结构体变量D. 结构体变量不能作为函数的参数传递3. 以下关于文件操作的说法中,错误的是()A. fopen()函数用于打开文件B. fclose()函数用于关闭文件C. fprintf()函数用于向文件写入格式化数据D. fscanf()函数用于从文件读取格式化数据4. 以下关于动态内存分配的说法中,正确的是()A. malloc()函数用于分配内存,但不需要释放B. calloc()函数用于分配内存,并将内存初始化为0C. realloc()函数用于重新分配内存,但不能改变原有内存的大小D. free()函数用于释放内存,但不能释放由malloc()函数分配的内存5. 以下关于链表的说法中,错误的是()A. 链表是一种动态数据结构,可以动态地插入和删除元素B. 链表中的每个节点都包含数据域和指针域C. 链表的最后一个节点的指针域为NULLD. 链表的插入和删除操作的时间复杂度为O(n)6. 以下关于递归函数的说法中,正确的是()A. 递归函数必须有递归出口,否则会导致无限递归B. 递归函数的时间复杂度一定高于非递归函数C. 递归函数的空间复杂度一定低于非递归函数D. 递归函数的参数必须是指针类型7. 以下关于二维数组的说法中,错误的是()A. 二维数组的每个元素都是一维数组B. 二维数组的行数和列数必须在定义时指定C. 二维数组的元素在内存中是连续存储的D. 二维数组的元素可以通过下标访问8. 以下关于函数指针的说法中,正确的是()A. 函数指针可以指向任意类型的函数B. 函数指针可以作为函数的参数传递C. 函数指针可以直接调用函数D. 函数指针不能进行赋值操作9. 以下关于位运算的说法中,错误的是()A. 位运算的操作数必须是整数类型B. 位运算的优先级高于算术运算C. 位运算的结果是一个整数D. 位运算可以用于实现快速的乘除运算10. 以下关于预处理器的说法中,正确的是()A. 预处理器是在编译阶段之前执行的B. 预处理器可以用于定义宏和条件编译C. 预处理器可以用于包含头文件D. 以上都对二、填空题(每空1分,共10分)1. 在C语言中,字符串是以_____结尾的字符数组。

高中c语言测试题及答案

高中c语言测试题及答案

高中c语言测试题及答案高中C语言测试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. returnD. void答案:D2. 在C语言中,以下哪个选项不是合法的变量名?A. _123B. $nameC. name123D. name答案:B3. 下列哪个选项是C语言中正确的注释?A. // 这是一个注释B. /* 这是一个注释 */C. /* 这是一个注释D. // 这是一个注释答案:A4. C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. ==答案:A5. 以下哪个选项是C语言中正确的字符串定义?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = "Hello", "World";答案:A6. C语言中,以下哪个选项是正确的数组定义?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr[] = {1, 2, 3, 4, 5, 6};答案:B7. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h"D. #include <stdio.h>答案:B8. C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if (x > y) {C. if (x > y)D. if (x > y) {答案:D9. C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for (int i = 0; i < 10; i++)C. for (int i = 0; i < 10; i++)D. for (int i = 0; i < 10; i++)答案:A10. C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a, int b) { return a, b; }C. int add(int a, int b) { return a; }D. int add(int a, int b) { return a + b; }答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符常量的数据类型是________。

c语言 测试题

c语言 测试题

第3章一、单项选择题1. 在一个C程序中(B )。

A.)main函数必须出现在所有函数之前B)main函数可以在程序任何位置出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置2.在PC机中,’\n’在内存占用的字节数是( A )。

A)1 B)2 C)3 D)43. 下列关于C语言用户标识符的叙述中正确的是(B )A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线(减号),但可以出现下划线C)用户识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头4. 以下叙述中正确的(D )。

A.)输入项可以是一个实型常量,例如:scanf("%f",3.5);B.)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C.)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f ",&f);D.)当输入数据时,必须指明变量地址,例如:scanf("%f ",&f);5.设整型变量i的值为3,则计算表达式i---i后i的值为( A )。

A)0 B)1 C)2 D)表达式出错6.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( A )。

A)6 B)9 C)8 D)表达式出错7. 以下选项中合法的用户标识符是( B )。

A)long B)_2test C)3Dmax D )A.dat8.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D )。

A)3 B)0 C) 9 D)-129.在以下一组运算符中,优先级最高的运算符是( C )。

A)<= B)= C)% D)||10.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( D )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C. scanf("%d%s",b,c); D. scanf("%d%s",b,&c);
19. 在C语言中,对上面的程序,正确的判断是(D ).(选择一项)
main()
{
int a,b;
scanf(“%d”,&x);
scanf(“%d”,&y);
if(x>y)
int i=2,j;
i++;
j=i;
printf(“%d,%d”,i,j);
输出结果为( B ).(选择一项)
A )2,3 B.3,3 C.3,2 D.2,2
21.在C语言中,( C )不是循环语句.(选择一项)
A.while语句 B.for语句 C.switch语句 D. do…while语句
28.下关于运算符优先顺序的描述中正确的是( )(选择一项)。
A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B.逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
int j;
for(j=1; j<10; j+=2)
printf("%d ",j);
A. 1 2 3 4 5 6 7 8 9 B. 2 4 6 8
C. 1 3 5 7 9 D. 1 2 4 6 8
14.在C语言中,表达式:10!=9 的非零值 C. 0 D. 1
15.在C语言中,下列正确的字符型常量是( B )。(选择一项)
A. "f" B. '9' C. # D. 365
16.在C语言中,下面( B )是逻辑运算符中优先级最高的。(选择一项)
A. ! B. && C. || D. | E. &
17. 以下述叙不正确的是 ( D )(选一项)
**学院课程考试试卷
课程名称:《C:使用C语言进入软件编程世界》 (A)卷
年级: 班级:
姓名:______BUKAILI_________ 学号:_________________ 考试(考查) 闭卷
5.下面C代码的输出结果是( BC )。(选择一项)
int answer,result;
answer=100;
result=answer-10;
printf("The result is %d", result+5);
A.The result is 90 B. The result is 95
22. 以上C语言代码的输出是( B )。(选择一项)
#include<stdio.h>
void main()
{
int i=0;
for(;i<5;i++)
printf(“%d”, ++i);
}
A. 012345 B. 135 C. 024 D. 语法错误
D.do-while循环中,根据情况可以省略while
36.以下对二维数组a的正确说明是( C ) (选择一项)。
A. int a[3][]; B. floatf a(3,4);
printf("%d,%d,%d\n",z,y,x);
}
输出结果是( A )。(选择一项)
A. 30,20,10 B. 10,20,30
C. 456,567,678 D. 678,567,456
10.阅读下面的C语言代码,输出结果是( B )。(选择一项)
int x, y = 1, z=0;
C.(ch>=' A' )&&(ch<='Z') D.(' A' < = ch)AND('Z'> = ch)
31.执行以下语句后a的值为:( C )(选择一项)
int a,b,c;
a= b= c= 1;
++a||++b&&++c
A.错误 B. 0 C. 2 D. 1
A.一个C源程序可以由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中注释说明只能位于一条语句的后面
18.有定义语句:int b;char c[10];,则正确的输入语句是(B )(选一项)
A. scanf("%d%s",&b,&c); B.scanf("%d%s",&b,c);
A. 7 B 8 C. 9 D. 10
27.设以下变量均为int类型,则值不等于7的表达式是( )(选择一项)
A.(x= y= 6, x+y,x+1) B.(x= y= 6,x+y,y+1)
C.(x= 6,x+1,y= 6,x+y) D.(y=6,y+l,x = y,x+1)
32.请阅读以下程序( D )(选择一项)
main()
{
int a=5,b=0,c=0;
if(a=b+c)
printf("***\n ");
e1se
printf("$$$\n");
以上程序 :
A 有语法错不能通过编译 B可以通过编译但不能通过连接
C. The result is 10 D. The result is 100
6.在C语言中,设有数组定义: char array [ ]="China"; 则数组 array所占的空间为( C )。(选择一项)
A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节
7.在C语言中,( A )是在所有函数外部声明的。(选择一项)
C 输出*** D 输出$$$
33.以下不正确的语句为:( B ) (选择一项)
A. if(x>y);
B. if (x= y) &&(x! = 0) x+= y;
C. if(x!= y)scanf("%d",&x); else scanf("%d",&y);
A.必须在最开始 B.必须在系统调用的库函数的后面
C.可以任意 D.必须在最后
25.在C语言中,要求运算数必须是整型的运算符是。( D ) (选择一项)
A. / B. ++ C. != D.%
26.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num之后sum的值为( B ) (选择一项)
D.if(x< y){x++ ;y++;}
34.下面程序段的运行结果是( D ) (选择一项)
n=0;
while(n++<=2);
printf("%d",n);
A. 2 B. 3 C. 4 D.有语法错
C. (x>=1) &&(x<=10)||(x>= 200) &&(x<=210)
D. (x > =1)||(x< =10) && (x> = 200)||(x<=210)
30.判断char型变量ch是否为大写字母的正确表达式是( C )(选择一项)。
A.'A' <=ch<='Z' B.(ch> = 'A')&(ch<='Z' )
A. Num[3]=20 B. Num[2]=20 C. Num[4]=20 D. [3] Num=20
12.在C语言中,已知字母A的ASCII码是65,则执行语句:char ch='A'+3; 后ch的值为( D )。(选择一项)
A. 不能确定 B. 68 C. C D. D
13.下面的C语言代码段的输出结果是( C )。(选择一项)
A. 1 2 3 B. 0 1 2 C. 2 3 D. 1 2
9.分析下面的程序:
void fun (int a,int b,int c)
{
a=456; b=567; c=678;
}
void main()
{
int x=10, y=20,z=30;
fun (x,y,z);
A. 全局变量 B. 局部变量 C. 形参 D. 实参
8.分析下面的C程序:
#include<stdio.h>
void main()
{
int num=0;
while(num<=2){
num++;
printf("%d ",num);
}
}
输出结果是( A )。(选择一项)
题号 1-20 21-40 41-50 总分
分数
选择题(每题2分,共计100分)
1.在C语言中,下列( AB )是合法的标识符。(选择两项)
相关文档
最新文档