试卷编号:11828 所属语言:C语言 试卷方案:gl1 试卷总分:100分 共有题型:6种 ━━━━━━━━━━━━━━━ 一、填空 共10题 (共计20分) ━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:1204 表达式 a+=b 相当于表达式【1】. 答案: =======(答案1)======= a=a+b =========或========= a=b+a 第2题 (2.0分) 题号:29 如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案: =======(答案1)======= void 第3题 (2.0分) 题号:659 int x=2;z=x++-1; 则z的值为【1】. 答案: =======(答案1)======= 1 第4题 (2.0分) 题号:1745 C语言的三种基本结构是顺序结构、选择结构、【1】结构. 答案: =======(答案1)======= 循环 第5题 (2.0分) 题号:662 int x=2;z=-x+++1; 则z的值为【1】. 答案: =======(答案1)======= -1 第6题 (2.0分) 题号:1568 设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案: =======(答案1)======= 1 第7题 (2.0分) 题号:1749 设a、b都是整型变量, a的值为3,b的值为2,则执行a= b++;语句后,变量a的值是【1】. 答案: =======(答案1)======= 2 第8题 (2.0分) 题号:1522 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 【1】 . c=(a-=(b-5)); c=(a%11)+(b=3); 答案: =======(答案1)======= 3 第9题 (2.0分) 题号:1188 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: =======(答案1)======= 11110000 第10题 (2.0分) 题号:1734 若有说明语句:char c='\72';则变量c在内存占用的字节数是【1】 答案: =======(答案1)======= 1 ━━━━━━━━━━━━━━━ 二、判断 共10题 (共计10分) ━━━━━━━━━━━━━━━ 第1题 (1.0分) 题号:1105 表达式 (j=3, j++) 的值是4. 答案:N 第2题 (1.0分) 题号:1566 在C程序中,APH和aph是两个相同的变量. 答案:N 第3题 (1.0分) 题号:1363 C语言的三种循环结构不可以互相嵌套。 答案:N 第4题 (1.0分) 题号:1550 逻辑表达式-4&&!0的值为1. 答案:Y 第5题 (1.0分) 题号:15 整数 -32100可以赋值给int型和long int型变量。 答案:Y 第6题 (1.0分) 题号:1551 设有数组定义: char a[ ]="abde"; 则数组 a所占的空间为4. 答案:N 第7题 (1.0分) 题号:1569 语句int a=2,b=2;if(a==3)b=1;执行后b的值是1。 答案:N 第8题 (1.0分) 题号:1558 在if语句的三种形式中,如果要想在满足条件时执行一组(多条)语句,则必须把这一组语句用{}括起来组成一个复合语句. 答案:Y 第9题 (1.0分) 题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第10题 (1.0分) 题号:6 在程序中定义了一个结构体类型后,可以多次用它来定义具有 该类型的变量。 答案:Y ━━━━━━━━━━━━━━━━━ 三、单项选择 共15题 (共计30分) ━━━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:640 以下对二维数组a的正确说明是()。 A:int a[3][] B:float a(3,4) C:double a[1][4] D:float a(3)(4) 答案:C 第2题 (2.0分) 题号:4580 C语言中函数返回值的类型是由( )决定的. A:函数定义时指定的类型 B:return语句中的表达式类型 C:调用该函数时的实参的数据类型 D:形参的数据类型 答案:A 第3题 (2.0分) 题号:579 在C语言中,char型数据在内存中的存储形式是()。 A:补码 B:反码 C:原码 D:ASCII码 答案:D 第4题 (2.0分) 题号:496 double x;scanf("%lf",&x);不可以赋值给x变量的常量是()。 A:123 B:100000 C:A' D:"abc" 答案:D 第5题 (2.0分) 题号:184 下列定义不正确的是()。 A:#define PI 3.141592 B:#define S 345 C:int max(x,y); int x,y; { } D:static char c; 答案:C 第6题 (2.0分) 题号:578 设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为()。 A:0--255 B:0--32767 C:0--65535 D:0--2147483647 答案:C 第7题 (2.0分) 题号:3105 以下程序的执行结果是main() { int x = 0, s = 0; while( !x != 0 ) s += ++x; printf( "%d ",s ); } A:0 B:1 C:语法错误 D:.无限循环 答案:B 第8题 (2.0分) 题号:4611 已有定义int x; f1oat y;且执行scanf("%d,%f",&x,&y);语句, 若从第一列开始输入数据123,45.678(回车),则x 的值为()。 A:12345 B:123 C:45 D:345 答案:B 第9题 (2.0分) 题号:577 在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。 A:由用用户自己定义 B:均为2个字节 C:是任意的 D:由所用机器的机器字长决定 答案:D 第10题 (2.0分) 题号:176 数组名作为实参数传递给函数时,数组名被处理为()。 A:该数组的长度 B:该数组的元素个数 C:该数组的首地址 D:该数组中各元素的值 答案:C 第11题 (2.0分) 题号:548 char *match(char c)是()。 A:函数定义的头部 B:函数预说明 C:函数调用 D:指针变量说明 答案:A 第12题 (2.0分) 题号:3154 如果int a=2,b=3,c=0,下列描述正确的是 A:a>b!=c和a>(b!=c)的执行顺序是一样的 B:!a!=(b!=c)表达式的值为1 C:a||(b=c)执行后b的值为0 D:a&&b>c的结果为假 答案:B 第13题 (2.0分) 题号:3088 下列变量中合法的是 A:B.C.Tom B:3a6b C:_6a7b D:$ABC 答案:C 第14题 (2.0分) 题号:504 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A:10 和 10 B:10 和 11 C:11 和 10 D:11 和 11 答案:B 第15题 (2.0分) 题号:525 C语言中不可以嵌套的是()。 A:函数调用 B:函数定义 C:循环语句 D:选择语句 答案:B ━━━━━━━━━━━━━━━━ 四、程序填空 共2题 (共计20分) ━━━━━━━━━━━━━━━━ 第1题 (10.0分) 题号:157 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 说明:下面程序的功能是统计文件中字符个数,请填写程序所缺 内容。 -------------------------------------------------------*/ #include "stdio.h" void main() { /***********SPACE***********/ 【?】*fp; long num=0L; if((fp=fopen("fname.dat","r"))==NULL) { printf("Open error\n"); } /***********SPACE***********/ while(【?】) { fgetc(fp); num++; } /***********SPACE***********/ printf("num=%1d\n",【?】); fclose(fp); } 答案: =======(答案1)======= FILE =======(答案2)======= !feof(fp) =======(答案3)======= num-1 第2题 (10.0分) 题号:414 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:通过函数的递归调用计算阶乘。 -------------------------------------------------------*/ #include long power(int n) { long f; if(n>1) /***********SPACE***********/ f=【?】; else f=1; return(f); } main() { int n; long y; printf("input a inteager number:\n"); /***********SPACE***********/ scanf("%d",【?】); y=power(n); /***********SPACE***********/ printf("%d!=%ld\n",n,【?】); } 答案: =======(答案1)======= power(n-1)*n =========或========= power( n - 1 ) * n =========或========= n*power(n-1) =======(答案2)======= &n =======(答案3)======= power(n) =========或========= y ━━━━━━━━━━━━━━━━ 五、程序改错 共1题 (共计10分) ━━━━━━━━━━━━━━━━ 第1题 (10.0分) 题号:374 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 ------------------------------------------------------*/ #include #include long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********FOUND**********/ for (k=4; k void wwjt(); int find(int arr[],int n) { int m=0; /**********Program**********/ /********** End **********/ return(m); } main() { int a[N],i,k; for(i=0;im) m=arr[i]; ----------------------