《C语言》试卷1
考试得分
{ int w=5;fun(w); } fun(int m)
{ if(m>0)fun(m-1); printf(\"%d \
装 : 号 学 订:名 姓 : 级 班业 专 线一、 选择题(请选择一个或多个正确选项,2分×30=60分) 1、在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则________。
A.称为函数的直接递归调用 B.C语言中不允许这样的递归调用 C.称为函数的循环调用 D.称为函数的间接递归调用 2、4.下面有关C语言特点的说法中,错误的是______。
A.C语言编写的代码较为紧凑,执行速度也较快
B.C语言不仅适合编写各种应用软件,还适于编写各种系统软件 C.C语言是一种模块化和结构化的语言 D.C语言编写的程序通常不具备移植性
3、下列标识符中,合法的用户标识符为_________。
A.month B.5xy C.int D.your name 4. 37.对于int型常量,不正确的是__________。
A.029 B.-25 C.0x2A D.-0X28
5、若ch为字符型变量,则不能使ch表示字符'B'的语句是__________。
A.ch=B; B.ch=66; C.ch='\\102'; D.ch='\\x42'; 6. 以下程序运行后的输出结果是______。 #include { int m=12,n=34; printf(\"%d%d\ printf(\"%d%d\\n\ A.12353514 B.12353513 C.12343514 D.12343513 7有以下程序段:int k=0,a=1,b=2,c=3; k=a+=b-=c;,执行该程序段后,k的值是______。 A.0 B.1 C.2 D.3 8. 设变量已经正确定义并赋值,以下正确的表达式是________。 A.x=y*5=x+z B.int(15.8%5) C.x=y+z*5,++y D.x=25%5.0 9. 若有定义int a=3,b=2,c=1;,以下选项中错误的赋值表达式是________。 A.a=(b=4)=3 B.a=b=c+1; C.a=(b=4)+c; D.a=1+(b=c=4); 10. 以下运算符中优先级最高的运算符为______。 A.! B.&& C.!= D.% 11、若有说明:int a[3][4]; 则对a数组元素的正确引用是______。 A.a[2][4] B.a[1,3] C.a[1+1][0] D.a(2)(1) 12. 下列表达式中,______不是关系表达式。 A.x%2= =0 B.!(x%2) C.(x/2*2-x)= =0 D.x%2!=0 13、以下程序的输出结果是________。 #include \"stdio.h\" main() (怀化市旅游学校)试卷 第1页 A.5 4 3 2 1 B.0 1 2 3 4 5 C.1 2 3 4 5 D.5 4 3 2 1 0 14、有以下定义的结构体: typedef struct student { int num; char name[10]; int age; } stu1; 则,struct student 是结构体变量名。 A.对 B.错 15. 设变量x和y均已正确定义并赋值,则以下if语句中,在编译时将产生错误信息的是_______。 A.if(x++); B.if(x>y&&y!=0) ; C.if(x>0) x- - D.if(y<0){;} else y++; else x++; 16. 已知:int t=0; while(t=1) { ... } ,则以下叙述正确的是______。 A.循环表达式的值为0 B.循环表达式的值为1 C.循环表达式不合法 D.以上说法都不对 17. 下面程序的输出结果是______。 #include { int n=9; while(n>6){n--; printf(\"%d\A.987 B.876 C.8765 D.9876 18若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体的执行次数是_______。 A.9 B.8 C.3 D.2 19、判断字符串 a 和 b 是否相等,应当使用______。 A.if(a==b) B.if(a=b) C.if(strcat(a,b)) D.if(strcmp(a,b)) 20、.有如下定义的结构体类型: struct data { int year; int month; int day; }workday; 对其中成员month的正确引用方式是______。 A.data.month B.data.year.month C.month D.workday.month 21、C程序中,定义函数时的参数是“实际参数”,调用函数时的参数是“形式参数”。 A.对 B.错 22、设有两字符串“Good”、“Morning”分别存放在字符数组 str1[10]、str2[10]中,下面语句中能把“Morning”连接到“Good”之后的是______。 A.strcpy(str1,str2); B.strcpy(str1, \"Morning\"); C.strcat(str1, \"Morning\"); D.strcat(\"Good\" ,str2); 23、以下对一维整型数组 a 定义正确的是______。 A.int a(10); B.int n=10,a[n]; C.int n;scanf(\"%d\ D.#define SIZE 10 int a[SIZE]; 24、下列字符串赋值语句中,不能正确把字符串“Hello World”赋给数组的语句是______。 A.char a1[]={'H','e ','l','l','o',' ','W','o','r','l','d','\\0'}; (怀化市旅游学校)试卷 第2页 B.char a2[15]; strcpy(a2,\"Hello World\"); C.char a3[15]; a3=\"Hello World\"; D.char a4[10]={ \"Hello World\ 25、用 scanf 函数输入一个字符串到数组 str 中,下面正确的语句是______。 A.scanf(\"%s\ B.scanf(\"%c\C.scanf(\"%s\ D.scanf(\"%s\ 26、假设 array 是一个有 10 个元素的整型数组, 则下列写法中正确的是______。 A.array[0]=10; B.array=0; C.array[10]=0; D.array[-1]=0; 27、下面程序的运行结果是______。 #include { int a[3][3]={1,2,3,4,5,6,7,8,9},i; for(i=0;i<=2;i++) printf(\"%d \ A.3 5 7 B.3 6 9 C.1 5 9 D.1 4 7 28、下面程序的运行结果是______。 #include { char c[5]={'a','b','\\0','c','\\0'}; printf(\"%s\ A.'a' 'b' B.ab C.ab c D.ab\\0c\\0 29、以下合法的数组定义是______。 A.int a[]=\"language\"; B.int a[5]={0,1,2,3,4,5}; C.char a=\"string\"; D.char a[]={\"0,1,2,3,4,5\ 30、设char s[10]= \"abcd\,则s和t在内存中分配的字节数分别是______。 A. 6和5 B. 6和6 C. 10和5 D. 10和6 二、判断题( 2分×10=20分) 31、typedef的作用是给数据类型取一个别名。( ) 32结构体中各个成员的数据类型必须是相同的。( ) 33、由i=-1;while(i<10) i+=2;i++;可知,此while循环的循环体执行次数为6次。( ) 34、数组名代表数组的首地址。( ) 35、函数strcpy(str1,str2)是将字符串 str2 连接到字符串 str1之后。( ) 36、在main()函数中定义的变量称为全局变量。( ) 37、 在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。( )38、for循环、while循环和do while循环结构之间可以相互转化。 39、设有定义:int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}};,则表达式a[1][2]+a[2][3]的值为9 (40、设有定义:char s[]={\"E_mail\,则执行printf(\"%d\\n\后输出的值是6。 三、编程题(10分×20=20分 ) 1、打印“*”号 三角形:从键盘输入一个自然数N(1 (怀化市旅游学校)试卷 第3页 2、采用递归算法编程,求n!。 1 (n=0,1) 提示:n!= n*(n-1) (n>0) (怀化市旅游学校)试卷第4页 ) 因篇幅问题不能全部显示,请点此查看更多更全内容