C语言程序设计A课程试卷(6)
- 格式:doc
- 大小:33.50 KB
- 文档页数:5
C语言程序设计考试试卷(附答案)计算机程序设计课程56 学时 3.5 学分考试形式:闭卷一、选择题(15小题,每小题2分,共计30分)1.下面不正确的字符串常量是 A 。
A)'abc' B)"12'12" C)"0" D)" "2.以下正确的叙述是 DA)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示D)在C程序中,%是只能用于整数运算的运算符3.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 AA)D B)68 C)不确定的值 D)C4.sizeof(float)是 B :A)一个双精度型表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式5.以下说法正确的是 D :A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 D (注:<CR>表示回车)。
int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);A) 1020AB<CR> B)10 20<CR>AB<CR>C)10 20 AB<CR> D)10 20AB<CR>7.请阅读以下程序:void main(){int a=5,b=0,c=0;if(a=b+c) printf("***\n");e1se printf("$$$\n");以上程序 D :A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出*** D)输出$$$8.下面程序段的运行结果是 C 。
C语言程序设计测试卷A卷及答案C语言程序设计测试卷(A卷)姓名:得分:一、填空题(15*1)1、C语言中基本的数据类型有:__________、__________ 、__________ 。
2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。
3、整数-35在机内的补码表示为__________。
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是__________ 。
5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是__________,A[3]= __________ 。
6、符号”a”和?a?的区别是__________。
7、所谓“指针”就是__________ 。
“&”运算符的作用是__________。
“*”运算符的作用是__________ 。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。
二、选择题(20*2)1、设整型变量a为5,使b不为2的表达式是()。
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( )。
int x=10,y=10;printf(“%d%d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为()。
C语言程序设计A课程试卷(6)一、单选题(每小题2分,共20分)1. C语言程序中的基本功能模块为()。
A. 表达式B. 标识符C. 语句D. 函数2. 逻辑表达式(x>0 || y==5)的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==53. 循环体至少被执行一次的循环语句为()。
A. forB. whileC. do-whileD. 任一种循环4. 假定n的值为5,则表达式n++的值为()。
A. 6B. 5C. 4D. 75. 假定一个二维数组的定义为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][0]的值为()。
A. 0B. 2C. 4D. 66. 假定一个函数原型为“char* func(int n)”,则该函数的返回类型为( )。
A. intB. int*C. charD. char*7. 假定a为一个字符数组名,则元素a[i]的指针访问方式为( )。
A. a+iB. *(a+i)C. &a+iD. *a+i8. 假定有语句为“int *p=calloc(10+20,sizeof(int));”,则p所指向的动态数组中所包含的元素个数为()。
A. 10B. 20C. 30D. 409.十进制数50表示成符合C语言规定的八进制数为________。
A. 20B. 32C. 62D. 06210. 若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为()。
A. "r+"B. "ab+"C. "rb+"D. "wb+"二、填空题(每小题2分,共26分)1. 在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为__________。
第 1 页 共 5 页一、单选题(每小题1分,共30 分)1. 若变量已正确定义,要求完成求6!的计算,不能完成操作的程序段是 。
A )for(i=1;i<=6;i++) {p=1;p*=i;}B )for(i=1,p=1;i<=6;i++) p*=i;C )i=1;p=1;while(i<=6) {p*=i;i++;}D )i=1;p=1;do {p*=i;i++;} while(i<=6);2. 以下程序的输出结果是 。
main(){ int a=2,b=-1,c=2; if(a<b) if(b<0) c++; else c++; else c--; printf("%d",c);}A )1B )4C )2D )3 3. 以下程序的输出结果是 。
main(){int x=0,a=0,b=0; switch(x) {case 0:b++; case 1:a++;break; case 2:a++;b++;}printf("a=%d,b=%d",a,b); }A )a=2,b=1B )a=1,b=1C )a=1,b=0D )a=2,b=2 4. 以下程序的输出结果是 。
main(){ int x=10,y=10,i;for(i=0;x>8;y=++i) printf("%d %d ",x--,y); }A )10 1 9 2B )9 8 7 6C )10 10 9 1D )10 9 9 0 5. 以下程序的输出结果是 。
main(){int s=0,i,x[][3]={1,2,3,4,5,6,7,8}; for(i=0;i<3;i++) s=s+x[i][2-i]; printf("%d",s); }A )6B )15C )36D )0 6.下面程序段执行后,a 的值是______。
C语言程序设计考试A卷答案以下是为大家整理的c语言程序设计考试A卷答案的相关范文,本文关键词为语言,程序设计,考试,答案,领导,审批,签名,广州大学,20,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。
系领导审批并签名A卷广州大学20XX-20XX学年第一学期考试卷课程《c语言程序设计》考试形式(闭卷,考试)物理与电子工程学院系专业学号姓名题号分数评分一50二20XX0三210310总分100评卷人一、选择题(每题2分,共50分)下列每题A、b、c、D四个选项中,只有一个选项是正确的。
1、以下说法正确的是(b)A)c语言程序总是从第一个函数开始执行b)c语言程序总是从main()函数开始执行c)在c语言程序中,要调用函数必须在main()函数中定义D)c语言程序中的main()函数必须放在程序的开始部分2、若有定义intk=5;,表达式k+=k-=k*=k运算后k的值是(c)A)90b)25c)0D)-153、有输入语句:scanf(“%d,%d,%d”,为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式为(D)(其中,“□”表示空格,表示enter键)A)1□3□2b)a=1,b=3,c=2c)a=1b=3c=2D)1,3,24、以下程序段的输出是(c)printf(“|%8.5f|\\n”,3461.45);A)|61.45000|b)|3461.450|c)|3461.45000|D)|3461.4500|5、在x值处于-2≤x≤2或4≤x≤8时值为“真”否则为“假”的表达式是(D)A)(-2≤x≤2)||(4≤x≤8)b)(x m=++i;n=j++;printf(\}第1页共8页A)108b)89c)99D)987、假设所有变量均为整数,则表达式(a=2,b=5,a++,b++,a+b)的值为(c)A)7b)8c)9D)108、有以下程序,执行后输出结果是(A)#includevoidmain(){inti=1,j=1,k=2;if((j++||k++)}A)2,2,2b)2,2,1c)1,1,2D9、有如下程序,该程序的输出结果是(D)#includevoidmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(\\n\);}A)a=2,b=2b)a=1,b=1c)a=1,b=010、下述程序的输出结果是:(c)#includemain(){intk=4,n=0;for(;n if(n%4!=0)continue;k--;}printf(“k=%d,n=%d\\n”,k,n);}A)k=1,n=1b)k=2,n=2c)k=3,n=4D)k=4,n=511、不正确的赋值或赋初值的方式是(b)。
.2015年春季学期《C 语言程序设计》试卷A一.选择(每道小题2分,合计30分)1、以下选项中合法的标识符是( )。
A)1_1B)1-1C)_11D)1_ _2、若函数中有定义语句:int k;,则( )。
A)系统将自动给k 赋初值0 B)这时k 中的值无定义 C)系统将自动给k 赋初值-1D)这时k 中无任何值3、以下选项中,能用作数据常量的是( ) 。
A)o115B)0118C)1.5e1.5D)115L4、设有定义:int x=2;,以下表达式中,值不为6的是( )。
A)x*=x+1 B)X++,2*x C)x*=(1+x)D)2*x,x+=25、程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的输出结果是( )。
A)123.141593 B)12 3.141593C)12,3.141593D)123.14159306、把2进制数10000111101转化为十进制数为( )。
A)1083B)1084 C)1085D)10867、以下是if 语句的基本形式: if(表达式) 语句 其中"表达式"( )。
A)必须是逻辑表达式B)必须是关系表达式 C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式8、有以下程序#include <stdio.h> main(){ int x; scanf("%d",&x);if(x<=3); elseif(x!=10) printf("%d\n",x);}程序运行时,输入的值在哪个范围才会有输出结果( )。
A)不等于10的整数 B)大于3且不等于10的整数 C)大于3或等于10的整数D)小于3的整数9、有以下程序#include <stdio.h> main(){ int a=1,b=2,c=3,d=0; if (a==1 && b++==2)if (b!=2||c--!=3) printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c);} 程序运行后输出结果是( )。
《高级语言程序设计(C语言)》A试卷和参考答案一、选择题(每题2分,25题,共50分)下列各题A、B、C、D四个答案中,只有一个选项是正确的,请将每题的正确答案写在答题纸对应序号的横线上,答在试卷上不能得分1、对于C语言的函数,下列叙述中正确的是(1)A、函数的定义不能嵌套,但函数调用可以嵌套B、函数的定义和调用都有不能嵌套C、函数的定义和调用都能嵌套D、函数的定义能嵌套,但函数调用不能嵌套2、以下程序的输出结果是( 2 )。
main(){int x=1,a=2, b=3;switch(x){ case 0: b=b+a;break;case 1: a=b+a;case 2: ++a;++b;}printf("a=%d,b=%d\n",a,b);}A、a=6,b=4B、a=5,b=3C、a=6,b=3D、a=5,b=43、以下程序的输出结果是( 3 )。
main(){int a=1,c;c=7/2||++a;printf("%d,%d ",a,c);}A、1,1B、0,1C、1,3D、2,34、若:char s[30][30];则数组元素的非法引用是(4)。
A、s[20][9]B、s[29+1][2*3]C、s[3][29]D、s[9][30-1]5、有以下定义语句:int a[10]={3, 9, 11, 14, 20, 32, 60}, *p;p=a;则++(*++p) 的值是(5)A、9B、11C、22D、106、下列可以正确表示字符型常数的是( 6 )A、"a"B、"\010"C、'\n'D、h7、若定义语句float bb[100],则该数组array元素的上、下限为( 7 ) 。
A、0,99B、99,0C、100,1D、0,1008、下列各组字符序列中,可用作C语言程序标识符的是(8)。
A、SBSDB、_1$234C、spr#itD、4_cf_1在9、已知:char ch='t';则下列表达式的值是( 9 )ch = (ch>='a'&&ch<='z') ? (ch-32) : ch;A、TB、AC、ZD、t10、以下程序段的输出结果是( 10 ) 。
C语言程序设计课程作业_A一、单选题1.(4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是()∙ A. x%=(k%=5)∙ B. x%=(k-k%5)∙ C. x%=k∙ D. (x%=k)-(k%=5)答案D解析C语言程序设计/数据类型与运算/整型算术表达式2.(4分)以下程序的输出结果是? #include main() { int x=020,y=0x20,z=20; printf('%d,%d,%d ', x,y,z); }∙ A. 20,20,20∙ B. 32,16,20∙ C. 16,32,20∙ D. 20,32,20答案C解析C语言程序设计/数据类型及运算3.(4分)C语言中while和do while循环的主要区别是( )∙ A. do-while的循环至少无条件执行一次∙ B. while循环控制条件比do-while的循环控制条件严格∙ C. do-while允许从外部转入到循环体内∙ D. do-while的循环体不能是复合语句答案A解析C语言程序设计/循环程序设计/while语句与do-while语句4.(4分)执行语句scanf('%d,%d',&m,&n);使m和n的值分别为1和2,正确输入是( ) ∙ A. 1∙ B. 1 2∙ C. 1,2∙ D. 12,2答案C解析C语言程序设计/顺序程序设计/整型数据的格式输入5.(4分)sizeof(float)是( )∙ A. 一个双精度型表达式∙ B. 一个整型表达式∙ C. 一种函数调用∙ D. 一个不合法的表达式答案B解析C语言程序设计/数据类型与运算/实型变量存储6.(4分)下列选项中,不合法的C语言关键字是∙ A. auto∙ B. default∙ C. static∙ D. var答案D解析C语言程序设计/C语言概述7.(4分)下面程序的运行结果是( )#include main(){int a[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i> 3))%5;printf('%2d',a[i]);}}∙ A. 4 0 4 0 4∙ B. -4 0 4 0 3∙ C. -4 0 4 4 3∙ D. -4 0 4 4 0答案C解析C语言程序设计/数组/二维数组与循环语句结合8.(4分)设有下面的程序段,char s[]='china'; char *p;p=s; 则下列正确的是( )∙ A. s和p完全相同∙ B. 数组s中的内容和指针变量p中的内容相等∙ C. s数组长度和p所指向的字符串长度相等∙ D. *p与s[0]相等答案D解析C语言程序设计/指针/数组与指针9.(4分)若已定义int a;下面对(1)(2)两个语句(1)int *p=&a; (2)*p=a;的正确解释是( ) ∙ A. 语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值∙ B. (1)和(2)语句的执行结果,都是把变量a的地址赋给指针变量p∙ C. (1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量p ∙ D. (1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给*p答案D解析C语言程序设计/指针/地址与指针10.(4分)下面四个选项中,均是不合法的用户标识符的选项是( )∙ A. A,P_0,do∙ B. float,la0,_A∙ C. b-a,goto,int∙ D. _123,temp,INT答案C解析C语言程序设计/数据类型与运算/标识符11.(4分)在C语言中,全局变量的隐含存储类别是∙ A. static∙ B. extern∙ C. void∙ D. register答案B解析C语言程序设计/函数12.(4分)若有以下定义:char s[10]='include',*p=s;则不能代表字符u的表达式是( )∙ A. s[4]∙ B. s+4∙ C. *(p+4)∙ D. p+=4,*p答案B解析C语言程序设计/指针/字符串指针的引用13.(4分)下面程序#include main(){int y=10;do {y--;}while(--y);printf('%d ',y--);}的运行结果是( ) ∙ A. 1∙ B. -1∙ C. 8∙ D. 0答案D解析C语言程序设计/循环程序设计/do-while语句14.(4分)a为0111,b为0123,a、b、c均为无符号短整型变量,则语句printf('%o,%o,%o,%o',c=~a,c= a&b,c=a|b,c=a∧b)的输出结果为( )∙ A. 177666,101,133,32∙ B. 0177666,0123,0333,032∙ C. 0177666,0101,0133,032∙ D. 177666,0123,0133,034答案A解析C语言程序设计/位运算/异或运算符15.(4分)有一个函数原型如下所示: abc(float x,double y); 则该函数的返回类型为∙ A. void∙ B. double∙ C. int∙ D. float答案C解析C语言程序设计/函数16.(4分)在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII码( ) ∙ A. 大32∙ B. 大64∙ C. 小32∙ D. 小64答案A解析C语言程序设计/数据类型与运算/字符常数比较17.(4分)执行以下程序后的输出结果是( )int w=3,z=7,x=10;printf('%d',x>10?x+100:x-10);printf('% d',w++||z++);printf('%d',!w>z);printf('%d',w&&z);∙ A. 0111∙ B. 1111∙ C. 0101∙ D. 0100答案C解析C语言程序设计/选择结构程序设计/条件运算符18.(4分)程序的三种基本结构是( )∙ A. 顺序结构,循环结构,递归结构∙ B. 顺序结构,循环结构,选择结构∙ C. 选择结构,循环结构,递归结构∙ D. 顺序结构,选择结构,递归结构答案B解析C语言程序设计/选择程序设计/程序结构19.(4分)设整型变量a值为9,则下列表达式中使b的值不为4的表达式( )∙ A. b=a/2∙ B. b=a%2∙ C. b=8-(3,a-5)∙ D. b=a>5?4:2解析C语言程序设计/数据类型与运算/整型算术表达式20.(4分)已有定义int k=2;int *p1,*p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是( ) ∙ A. k=*p1+*p2∙ B. p2=k∙ C. p1=p2∙ D. k=*p1*(*p2)答案B解析C语言程序设计/指针/指针变量的定义21.(4分)若有以下定义int a[5]={1,2,3,4,5},*p,i;i=3;p=a;,则对数组元素地址的正确引用是( ) ∙ A. &p∙ B. a++∙ C. &(p+1)∙ D. &p[i]答案D解析C语言程序设计/指针/数组指针的引用二、判断1.(4分)用typedef可以创建新的基本类型∙∙解析C语言程序设计/结构体与共用体2.(4分)在C 语言中,共用体类型属于构造类型∙∙答案正确解析C语言程序设计/数据类型与运算/构造数据类型3.(4分)strcmp3(char *s,char *t){for (;*t= =*s;){if (!*t) return 0; t++;s++;}return (*s-*t);}库函数strcmp(char*s,char*t)是功能相等的程序段∙∙答案正确解析C语言程序设计/指针/指针作为函数参数4.(4分)C语言程序中,一个文件中的函数可以引用另一个文件中的函数和变量∙∙答案正确解析C语言程序设计/文件一、单选题1.(4分)在C语言中,反斜杠符是( )∙ A. \n∙ B. \t∙ C. \v∙ D. \\答案D解析C语言程序设计/数据类型与运算/字符常数表示形式2.(4分)执行下列程序段后, int x=10,y=9;int a,b,c;a=(--x= =y++)?--x:++y;b=x++;c=y; 变量a,b, c的值分别是( )∙ A. a=9,b=9,c=9∙ B. a=8,b=8,c=10∙ C. a=9,b=10,c=9∙ D. a=8,b=8,c=9答案B解析C语言程序设计/选择结构程序设计/条件与算术运算符3.(4分)判断char型变量c1是否小写字母的正确表达式为∙ A. 'a'<=c1<='z'∙ B. (c1>='a')&&(c1<='z')∙ C. (c1>=a)&&(c1<=z)∙ D. ('a'<=c1)||('z'>=c1)答案B解析C语言程序设计/数据类型及运算4.(4分)阅读以下程序,int w=1,x=2,y=3,z=4,m;m=w∙ A. 1∙ B. 2∙ C. 3∙ D. 4答案A解析C语言程序设计/选择结构程序设计/条件运算符嵌套5.(4分)在C语言中运算符的优先级从高到低的排列顺序是∙ A. 关系运算符算术运算符赋值运算符∙ B. 算术运算符赋值运算符关系运算符∙ C. 赋值运算符关系运算符算术运算符∙ D. 算术运算符关系运算符赋值运算符答案D解析C语言程序设计/数据类型及运算6.(4分)若有以下定义, int k=7,x=12, 则能使值为3的表达式是( ) ∙ A. x%=k%=5∙ B. x%=k-k%5∙ C. x%=(k-k%5)∙ D. (x%=k)-(k%=5)答案D解析C语言程序设计/数据类型与运算/算术表达式7.(4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是()∙ A. x%=(k%=5)∙ B. x%=(k-k%5)∙ C. x%=k∙ D. (x%=k)-(k%=5)答案D解析C语言程序设计/数据类型与运算/整型算术表达式8.(4分)设有以下程序片段:char s[ ]='Program!';char *p;p=s;则执行完上面的程序段后,*(p+8)的值为( )∙ A. !'∙ B. '\0'∙ C. 'm'∙ D. 不定值答案B解析C语言程序设计/指针/字符串指针的引用9.(4分)C语言中合法的字符常量是∙ A. ’\\’∙ B. ”H”∙ C. ’He’∙ D. p答案A解析C语言程序设计/数据类型及运算10.(4分)以下read函数的调用形式中,参数类型正确的是( )∙ A. read(int fd,char *buf,int count)∙ B. read(int *buf,int fd,int count)∙ C. read(int fd,int count,char *buf)∙ D. read(int count,char *buf,int fd)答案A解析C语言程序设计/文件/文件的读和写11.(4分)设有以下程序片段:char a[ ]='hello',*p;p=a;printf('%d',*(p+5));执行上面的程序片段后的结果为( )∙ A. 111∙ B. 0∙ C. 104∙ D. 不确定的值答案B解析C语言程序设计/指针/数组元素的引用12.(4分)以下程序main(){int x=10,y=10;printf('%d %d ',x--,--y);}的输出结果是( ) ∙ A. 10 10∙ B. 9 9∙ C. 9 10∙ D. 10 9答案D解析C语言程序设计/顺序程序设计/整型变量的输出格式和算术运算符13.(4分)以下函数的功能对应于int fun(char *s,char *t) { while (*s)&&(*t)&&(*t==*s)} { t++; s ++; } return(*s-*t); }∙ A. strlen(s)+strlen(t)∙ B. strcmp(s,t)∙ C. strcpy(s,t)∙ D. strcat(s,t)答案B解析C语言程序设计/循环控制14.(4分)C语言规定,函数返回值的类型是由( )所决定。
一、单选题(每小题2分,共20分)
1. C语言程序中的基本功能模块为()。
A. 表达式
B. 标识符
C. 语句
D. 函数
2. 逻辑表达式(x>0 || y==5)的相反表达式为()。
A. x<=0 || y!=5
B. x<=0 && y!=5
C. x>0 || y!=5
D. x>0 && y==5
3. 循环体至少被执行一次的循环语句为()。
A. for
B. while
C. do-while
D. 任一种循环
4. 假定n的值为5,则表达式n++的值为()。
A. 6
B. 5
C. 4
D. 7
5. 假定一个二维数组的定义为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][0]的值为()。
A. 0
B. 2
C. 4
D. 6
6. 假定一个函数原型为“char* func(int n)”,则该函数的返回类型为( )。
A. int
B. int*
C. char
D. char*
7. 假定a为一个字符数组名,则元素a[i]的指针访问方式为( )。
A. a+i
B. *(a+i)
C. &a+i
D. *a+i
8. 假定有语句为“int *p=calloc(10+20,sizeof(int));”,则p所指向的动态数组中所包含的元素个数为()。
A. 10
B. 20
C. 30
D. 40
9.十进制数50表示成符合C语言规定的八进制数为________。
A. 20
B. 32
C. 62
D. 062
10. 若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为()。
A. "r+"
B. "ab+"
C. "rb+"
D. "wb+"
二、填空题(每小题2分,共26分)
1. 在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为__________。
2. 用于从键盘上为变量输入值的标准输入函数的函数名为________。
3. 假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ac的值为________。
4.double类型的长度为________。
5. 执行“int x=45,y=13;printf("%d",x/y);”语句序列后得到的输出结果为________。
6. 把表达式x=x+y转换成复合赋值表达式为__________。
7. 假定x的值为5,则执行“a=(!x? 10: 20);”语句后a的值为________。
8. 假定一维字符指针数组的定义为“char* a[8];”,则该数组占用的存储空间的字节数为________。
9. 假定二维数组的定义为“double a[M][N];”,则数组元素的行下标取值范围在_________之间。
10. 空字符串的长度为________。
11. 在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为________。
12. 若p指向x,则________与x的表示是等价的。
13. 直接访问表达式(*fp).score所对应的间接访问表达式为____________。
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
1. #include<stdio.h>
void main() {
int i,j,k=0;
for(i=0; i<5; i++)
for(j=i; j<5; j++) k++;;
printf("%d\n",k);
}
2. #include<stdio.h>
void main() {
int x=20;
int i=2;
while(i<x) {
if(x%i==0) {printf("%d ",i); x/=i;}
i++;
}
}
3. #include<stdio.h>
void main() {
int a[8]={76,63,54,95,40,75,90,66};
int i, s=0;
for(i=0; i<8; i++)
if(a[i]>=70 && a[i]<=90) s+=a[i];
printf("s=%d\n",s);
}
4. #include<stdio.h>
int WF(int x, int y) {
x=x+y;
y+=x;
return x+y;
}
void main() {
int x=3, y=8;
printf("%d\n",WF(x,y));
}
5. #include<stdio.h>
int LA(int *a, int n) {
int i,s=0;
for(i=0;i<n;i++) s+=a[i];
return s;
}
void main() {
int a[5]={1,2,3,4,5};
int b=LA(a,5)+LA(a+2,3);
printf("b=%d\n",b);
}
四、写出下列每个函数的功能(每小题6分,共12分)
1. int WC(int a[], int n, int k) {
int i, c=0;
for(i=0;i<n;i++)
if(a[i]>=k) c++;
return c;
}
函数功能:
2. void QA(struct Worker a[], int n)
{
int i;
for(i=0; i<n; i++)
scanf("%s %d %f", a[i].name, &a[i].age, &a[i].pay);
}
假定结构类型struct Worker 的定义如下:
struct Worker { char name[15]; int age; float pay;};
函数功能:
五、按题目要求编写函数(每小题6分,共12分)
1. 根据函数原型“double Mean(double a[M][N],int m,int n)”,编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。
假定在计算过程中采用变量v存放累加值和最后的平均值。
2. 根据函数原型“int MM(int a[],int m)”,编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。
C语言程序设计A课程试卷答案及评分标准(6)
(供参考)
一、单选题(每小题2分,共20分)
1. D
2. B
3. C
4. B
5. A
6. D
7. B
8. C
9. D 10. C
二、填空题(每小题2分,共26分)
1. #include
2. scanf
3. 1
4. 8
5. 3
6. x+=y
7. 20
8. 32
9. 0~M-1 10. 0 11. 0 12. *p
13. fp->score
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
评分标准:根据答案正确程度酌情给分。
1. 15
2. 2 5
3. s=241
4. 30
5. b=27
四、写出下列每个函数的功能(每小题6分,共12分)
评分标准:根据答案叙述正确与完整程度酌情给分。
1. 统计并返回一维整型数组a[n]中大于等于k的值的个数。
2. 从键盘上为具有struct Worker类型的数组a[n]输入n个记录。
五、按题目要求编写函数(每小题6分,共12分)
评分标准:根据函数编写的正确与完整程度酌情给分。
1. double Mean(double a[M][N],int m,int n)
{
int i,j;
double v=0.0; //1分
for(i=0; i<m; i++)
for(j=0; j<n; j++) v+=a[i][j]; //4分
v/=m*n;
return v; //6分
} //注:函数体的最后两行可以合并为一条返回语句:return v/=m*n 2. int MM(int a[],int m)
{
int i,x1,x2;
x1=x2=a[0]; //1分
for(i=1; i<m; i++) { //2分
if(a[i]>x1) x1=a[i]; //3分
if(a[i]<x2) x2=a[i]; //4分
} //5分
return x1-x2; //6分
}。