09年桂林电子科技大学C语言试卷A__有答案

合集下载

09年C语言试题及答案

09年C语言试题及答案

09年C语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的源代码不能直接在计算机上运行C. C语言支持结构化编程D. C语言不支持面向对象编程答案:D2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述中,正确的是:A. 指针可以存储地址B. 指针可以存储数据C. 指针不能存储地址D. 指针不能存储数据答案:A4. 在C语言中,用于定义一个函数的关键字是:A. intB. voidC. returnD. function答案:A5. 下列关于数组的描述中,错误的是:A. 数组可以存储相同类型的元素B. 数组的索引从0开始C. 数组的大小在定义时确定D. 数组的大小可以在运行时改变答案:D6. 在C语言中,用于控制循环的关键字是:A. ifB. whileC. forD. switch答案:C7. 下列关于文件操作的描述中,错误的是:A. 文件操作需要使用文件指针B. 文件操作需要包含stdio.h头文件C. 文件操作不需要使用文件指针D. 文件操作需要使用fclose函数关闭文件答案:C8. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A9. 下列关于函数参数的描述中,错误的是:A. 函数参数可以是常量B. 函数参数可以是变量C. 函数参数可以是数组D. 函数参数不可以是指针答案:D10. 在C语言中,用于定义一个联合体的关键字是:A. unionB. structC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义变量的关键字是________。

答案:int2. 在C语言中,用于定义一个宏的预处理命令是________。

桂林电子科技大学C语言精选样卷及答案

桂林电子科技大学C语言精选样卷及答案

桂林电子科技大学C语言精选样卷总分:【100分】考试时间:【90分钟】一、单项选择题(共20题,每题2分,共计40分)()1、在下列选项中,不正确的表达式是________。

A、a>bB、c--, ++b, a+=1C、a=c+b>n-m=kD、p++()2、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。

A、++x,y=x--B、x+l=yC、x=x+10=x+yD、double(x)/10()3、main(){int x=1,a=0,b=0;switch (x){ case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d",a,b);}该程序的输出结果是( )A、2,1B、1,1C、1,0D、2,2()4、下列选项中均属于c语言合法的标识符是________。

A、Int#subbreakB、_3abLongC、3aprintfa_bD、WORDautoinclude()5、下列程序的运行结果是________。

void fun(int*a,int*b){int *k;k=a;a=b;b=k;}main(){int a=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}A、63B、36C、编译出错D、0 0()6、下列程序段的输出是____。

int c[]={1, 3, 5};int *k=c+1;printf("%d", *++k);A、3B、4C、5D、6()7、定义如下变量和数组: int k; int a[3][3]= {9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是________。

for(k=0;k<3;k++) printf("%d",a[k][k]);A、7 5 3B、9 5 1D、7 4 1()8、在c 语言中,退格符是________。

2009年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

2009年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列 B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装 B)自顶向下C)模块化 D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图 D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形(10)有三个关系R,S和T如下:T其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned(13)阅读以下程序#include <stdio.h>main(){ int case; float printF;printf("请输入2个数:");scanf("%d %f",&case,&printF);printf("%d %f\n",case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0 B)3 C)4 D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20 B)-10 C)0 D)10(16)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序运行后的输出结果是A)0,0 B)1,0 C)3,2 D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#include <stdio.h>main(){ 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)3 B)5 C)7 D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1; B)if((a>b)||(b>c) k=1;else k=0; else k=0;C)if(a<=b) k=0; D)if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;(20)有以下程序#include <stdio.h>main(){ char s[]={"012xy"};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a' &&s[i]<='z') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)2 C)3 D)5(21)有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第3页(共9页)printf("%d %d\n",k,n);}程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';(23)有以下程序#include <stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69 C)E,D D)输出无定值(24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf("%d",p);}main(){ int a=1;fun(a); printf("%d\n",a);}程序运行后的输出结果是A)32 B)12 C)21 D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28)有以下程序#include <stdio.h>#include <string.h>main(){ char str[ ][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World(29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i]=0;}for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");}程序运行后的输出结果是A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4(30)有以下程序#include <stdio.h>#include <string.h>main(){ char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第5页(共9页)程序运行后的输出结果是A)7,4 B)4,10 C)8,8 D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char *a,char *b){ while((*b=*a)!='\0') {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有'\0'(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun;C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7 B)8 C)9 D)10(35)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}程序运行后的输出结果是A)10,64 B)10,10 C)64,10 D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]="string";c=str; B)scanf("%s",c);C)c=getchar(); D)*c="string";(38)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}struct A f(struct A t){ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0(39)若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是A)16 B)8 C)4 D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

C语言程序设计期中试卷(含答案)

C语言程序设计期中试卷(含答案)

桂林电子科技大学信息科技学院试卷2008-2009 学年第 2 学期 课号 课程名称:C 语言程序设计(闭卷) 适用班级(或年级、专业) 通信、电子(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷说明:(1) 第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。

(2) 答本卷的题目时,要在标准答题纸上编写对应的栏目中,用铅笔在正确答案图黑,在试题上直接勾划者不得分。

(3) 本卷共70分,其中第1~26题每题2分,第27~32题每题3分。

第一部分:基础知识(20题,共40分)1 以下叙述中正确的是A )C 语言的源程序不必通过编译就可以直接运行B )C 语言中的每条可执行语句最终都将被转换成二进制的机器指令 C )C 源程序经编译形成的二进制代码可以直接运行D )C 语言中的函数不可以单独进行编译 2 以下选项中合法的用户标识符是A) long B) _2Test C) 3Dmax D) A.dat3 已知大写字母A 的ASCII 码值是65,小写字母a 的ASCII 码是97,则用八进制表示的字符常量'\101'是A) 字符A B) 字符a C) 字符e D) 非法的常量 4 以下非法的赋值语句是A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 5 设a 和b 均为double 型变量,且a=5.5、b=2.5,则表达式(int)a+b/b 的值是 A) 6.500000 B) 6 C) 5.500000 D) 6.0000006 已知i 、j 、k 为int 型变量,若从键盘输入:1,2,3<回车>,使i 的值为1、j 的值为2、k 的值为3,以下选项中正确的输入语句是A) scanf("%2d%2d%2d ",&i,&j,&k); B) scanf("%d %d %d ",&i,&j,&k); C) scanf("%d,%d,%d ",&i,&j,&k); D) scanf("i=%d,j=%d,k=%d ",&i,&j,&k);7设有定义:float a=2,b=4,h=3;,以下C 语言表达式与代数式 计算结果不相符的是A) (a+b) *h/2 B) (1/2)*(a+b)*h C) (a+b)*h*1/2 D) h/2*(a+b)h b a )(218与数学式子123-x nx对应的C 语言表达式是A) 3*x^n(2*x-1) B) 3*x**n(2*x-1)C) 3*pow(x,n)*(1/(2*x-1)) D) 3*pow(n,x)/(2*x-1)9 设有定义:long x=-123456L ;,则以下能够正确输出变量x 值的语句是A) printf("x=%d\n ",x); B) printf("x=%1d\n ",x); C) printf("x=%8dL\n ",x); D) printf("x=%LD\n ",x); 10 若有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k); printf("%d,%d\n ",m,i); }执行后的输出结果是A) 8,6 B) 8,3 C) 6,4 D) 7,4 11 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是A) 6 B) 0 C) 2 D) 1 12 以下选项中,与k=n++完全等价的表达式是A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1 13 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char 型变量和int 型变量,但不能是float 型变量 C) 它们的运算对象可以是int 型变量,但不能是double 型变量和float 型变量 D) 它们的运算对象可以是char 型变量、int 型变量和float 型变量 14 若有以下程序段(n 所赋的是八进制数)int m=32767,n=032767; printf("%d,%o\n ",m,n); 执行后输出结果是A) 32767,32767 B) 32767,032767 C) 32767,77777 D) 32767,077777 15 C 语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构 B) if 、switch 、break C) for 、while 、do-while D) if 、for 、continue16 有一函数,0x 0x 0x 101y <=>-=⎪⎩⎪⎨⎧,以下程序段中不能根据x值正确计算出y值的是A) if(x>0) y=1; B) y=0;else if(x==0) y=0; if(x>0) y=1;else y=-1; else if(x<0) y=-1;C) y=0; D) if(x>=0)if(x>=0) if(x>0) y=1; if(x>0) y=1; else y=0; else y=-1; else y=-1;int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,018 有以下程序main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序运行后的输出结果是A) 0,0 B) 0,1 C) 1,0 D) 1,119 有定义语句:int x,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A) 11 12<回车> B) 11, 12<回车> C) 11,12<回车> D) 11,<回车>12<回车>20 设有如下程序段:int x=2002,y=2003;printf("%d\n",(x,y));则以下叙述中正确的是A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为2002D) 输出值为2003二第二部分:简单程序(12题,21-26题每题2分,27-32题每题3分,共30分)21 有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1:printf("%d",i);case 2:printf("%d",i);default:printf("%d",i);}}执行后输出结果是A) 011122 B) 012 C) 012020 D) 120{ int i=1,j=1,k=2;if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);}执行后输出结果是A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,323 有以下程序main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\017";printf("%c%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是A) 程序中只有a='\';语句不正确 B) b='\xbc';语句不正确C) d="\017";语句不正确 D) a='\';和c='\0xab';语句都不正确24 以下程序段中与语句k=a>b?(b>c?1:0):0; 功能等价的是A) if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1;else k=0; else k=0;C) if(a<=b) k=0; D) if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;25 有以下程序main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出结果是A) 2 B) 3 C) 4 D) 编译时有错,无结果26 有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j); }执行后输出结果是A) 9,2 B) 10,2 C) 9,1 D) 10,1{ int i=0,s=0;do{ if(i%2) { i++; continue; }i++;s+=i;} while(i<7);printf("%d\n",s);}执行后输出结果是A) 16 B) 12 C) 28 D) 2128 有以下程序main(){ int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-529 有以下程序main(){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf("%d\n",s);}程序执行后的输出结果是A) 自然数1~9的累加和 B) 自然数1~10的累加和C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和30 有以下程序main(){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序执行后的输出结果是A) n=5 B) n=2 C) n=3 D) n=431 要求以下程序的功能是计算:10131211++++= s main (){ int n; float s; s=1.0;for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n ",s); }程序运行后输出结果错误,导致错误结果的程序行是A) s=1.0; B) for(n=10;n>1;n--) C) s=s+1/n; D) printf("%6.4f/n ",s); 32 有以下程序段int n=0,p;do { scanf("%d ",&p); n++; } while(p!=12345 && n<3); 此处do —while 循环的结束条件是A) p 的值不等于12345并且n 的值小于3 B) p 的值等于12345并且n 的值大于等于3 C) p 的值不等于12345或者n 的值小于3 D) p 的值等于12345或者n 的值大于等于3第二卷说明:(1) 第二卷含5大题,均属填空题,总共有10个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C 语言程序。

2009计算机二级c语言考试真题及答案

2009计算机二级c语言考试真题及答案

2009计算机二级c语言考试真题及答案一、选择题(每题1分,共40分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 若有定义:int a=3, b=4, c=5;,则表达式a+b+c的值是:A. 12B. 9C. 15D. 3答案:C3. C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A4. 在C语言中,以下哪个选项是正确的字符常量?A. 'ab'B. '65'C. '\n'D. "A"答案:C5. 若有定义:int a=5, b=10;,则执行语句a=b后,变量a的值是:A. 5B. 10C. 15D. 0答案:B6. 在C语言中,以下哪个选项是正确的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. 'Hello World!'答案:A7. 若有定义:int a=5;,则执行语句a+=3后,变量a的值是:A. 5B. 8C. 3D. 2答案:B8. 在C语言中,以下哪个选项是正确的数组定义?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3};C. int a[] = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3, 4};答案:C9. 若有定义:int a[5] = {1, 2, 3, 4, 5};,则执行语句a[2]=6后,数组元素a[2]的值是:A. 1B. 2C. 6D. 5答案:C10. 在C语言中,以下哪个选项是正确的函数定义?A. int max(int x, int y) { return x > y ? x : y; }B. int max(int x, int y) { if(x > y) return x; else returny; }C. int max(int x, int y) { return x > y ? y : x; }D. int max(int x, int y) { if(x > y) return y; else returnx; }答案:A二、填空题(每题2分,共20分)1. 在C语言中,若要定义一个整型变量x并初始化为10,应使用语句:________。

09级C语言期中试卷

09级C语言期中试卷

桂林电子科技大学信息科技学院09级C程序设计期中测试卷一、选择题(20题,共40分)1.一个C程序总是从开始执行。

A. 程序的第一个语句B. 主函数C. 子程序D. 主程序2.下列标识符中,合法的用户标识符为。

A. P#AdB. 12aC. charD. _int3.下面4组常量,合法的一组C语言常量是。

A. 0B. 10C. 0.01D. 0.10x10 10L "\"" 3E+02E+9 E1 "\' ""\""'a'"a"'t''tt'''''\0''\t' 0124.执行下列程序片段时输出结果是。

unsigned int a=65535;printf(“%d”,a);A)65535 B)-1 C)-32767 D)15.若有定义(说明)int a[3][4]; 则对数组a的元素的引用非法的是。

A. a[2][2*1]B. a[1][3]C. a[4-2][0]D. a[0][4]6.以下不能对二维数组a进行正确初始化的语句是。

A. int a[2][3] ={0};B. int a[][3] ={{1,2},{0}};C. int a[2][3] ={{1,2},{3,4},{5,6}};D. int a[][3] ={1,2,3,4,5,6};7.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是。

int a1,a2; char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020AB↙B)10 20↙AB↙C)10 20 AB↙D)10 20AB↙8.下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷B卷及答案

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷B卷及答案

桂林电子科技大学试卷2010~2011 学年第1 学期课号101794,101798,101800,101801,101802,101803,101804课程名称C语言程序设计(B卷,闭卷)适用班级(或年级、专业)2010级考试时间120 分钟班级学号姓名题号一二三四五六七八九十成绩满分30 20 30 20 100 得分评卷人一、选择题(共30分,每小题2分)1、一个C语言程序中,以下说法中正确的是 C 。

A)main函数必须出现在所有函数之前B)main函数必须出现在所有函数之后C)main函数可以放在任何位置D)main函数必须放在固定位置2、在C语言中,下列合法的变量名是 D 。

A) b.cat B) #p12 C) 3D64 D) p_12 3、为表示x≥y≥z,须用C语言表达式的是 A 。

A)(x>=y)&&(y>=z) B) (x>=y)AND(y>=x)C) x>=y>=z D) (x>=y)&(y>=z)4、有输入语句:scanf(“a=%d, b=%d, c=%d”, &a, &b, &c); 为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 D 。

A)132<回车> B)1, 3, 2<回车>C)a=1 b=3 c=2<回车> D)a=1, b=3, c=2<回车>5、以下程序的输出结果是 A 。

A) 3 B) 4 C) 0 D) 1 void main ( ){ int x = 1 , y = - 1 , z = 3 ;if ( x < y )if ( y < 0 ) z = 0 ;else z = z + 1 ;printf ( " %d \n ", z );}6、对于while语句,错误的说法是 B 。

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷A卷及答案

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷A卷及答案

桂林电子科技大学试卷2010-2011 学年第 1 学期课号101794,101798,101800,101801,101802,101803,101804课程名称C语言程序设计(A 卷,闭卷)适用班级(或年级、专业)2010级一.选择题(每题2分,共30分)1.设x=3,y=2,则表达式x*=y+8的值为__ C ___。

(原式:x=x*(y+8))A. 3B. 2C. 30D. 102.C语言中逻辑值“真”用 D 表示。

A. trueB.大于0的数C.非0整数D.非0的数3. 有输入语句:scanf(“a=%d, b=%d, c=%d”, &a, &b, &c); 为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 D 。

A. 132<回车>B. 1, 3, 2<回车>C. a=1 b=3 c=2<回车>D. a=1, b=3, c=2<回车>4. 若二维数组a有m列,则在a[ i ][ j ]之前的元素个数为 B 。

A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+15. 判断char型变量ch是否为大写字母的正确表达式是 C 。

A. 'A'<=ch<='Z'B. (ch>='A')&(ch<='Z')C. (ch>='A')&&(ch<='Z')D. ('A'<=ch)AND('Z'>=ch)6. 为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与___ B 配对。

A. 缩排位置相同的ifB. 其之前最近的ifC. 其之后最近的ifD. 同一行上的if (参见课本62页)7. 结构化程序设计使用的基本程序控制结构为____ C ____。

2022年桂林电子科技大学公共课《C语言》科目期末试卷A(有答案)

2022年桂林电子科技大学公共课《C语言》科目期末试卷A(有答案)

2022年桂林电子科技大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int x=1;printf("%d\n",~x);上面程序段的输出结果是_______。

2、C语言的源程序必须通过【】和【】后,才能被计算机执行。

3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是4、假设m是一个3位数,从左到右依次用a、b、c表示各位的数字,则从左到右各位数字是b、a、c的3位数的表达式是_______。

5、若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后a的值为_______,b的值为_______,c的值为_______。

6、下面程序段的运行结果是_______。

chara[]="12345",*p;int s=0;for(p=a;*p!=\0';p++)s=10*s+*p-'o';printf("%d\n",s);7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是_______,改正后为_______。

void add(float a,float b){float c;c=a+b;return c;}8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。

例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。

请填空。

_______;a=b;b=c;_______;9、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。

#include <stdio.h>int main(){int a,b;float x,y;char cl,c2;scanf("a=%d b=%d",&.a,&.b);scanf("x=%f y=%",8.x,8.y);scanf("c1=%cc2=%c”,8.cl,8.c2);printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c",a,b,x,y,cl,c2);return0;}10、下面程序段将输出computer。

2009年C语言期末考试题(A卷)及答案

2009年C语言期末考试题(A卷)及答案
2.在主函数中从键盘输入学生人数n(n≤200)及某门功课的成绩。写一个子函数,求出该门功课的平均值并返回到主函数中,在主函数中打印输出该平均值。(15分)
【输出举例】:
输入学生人数:
输入学生成绩:
平均成绩=
2008-2009学年第二学期期末
《C语言程序设计》(A卷)标准答案和评分标准
一、单项选择题(每小题2分,共40分)
12.有以下程序
main( )
{ char k; inti;
for(i=1;i<3;i++)
{ scanf(“%c”,&k);
switch(k)
{ case ‘0’: printf(“another\n”);
case ‘1’: printf(“number\n”);
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()
10、(“bi.dat”,”w”)
11、s[i]>='0'&&s[i]<='9'
12、int *
13、28
14、2 1 4 3
15、CDG
三、编程序题(共25分)
1.编制程序,使程序输出一个矩阵,格式如下:
1┗┛5┗┛7
2┗┛4┗┛8
3┗┛9┗┛6
然后求出对角线元素之和并输出。(10分)
评分标准如下所示,用其它方法正确编程,达到题目要求也得分。
6
7
8
9
10
答案
题号
11
12
13
14
15
16
17
18
19
20

09年抽考A卷

09年抽考A卷

第 5 页 共 7 页
程序 4: #include <stdio.h> #define NRows 5 main() { int i, j; for (i=1; i<=NRows; i++) { for (j=i; j<NRows; j++) { printf(" "); } for(j=0; j<2*i-1; j++) { printf("*"); } printf("\n"); } } 程序运算后的结果为:
main() { int i=10,j=1; printf("%d,%d\n",i--,++j); } 执行后输出结果是 A) 9,2 B) 10,2
C) 9,1
D) 10,1
第 1 页 共 7 页
6. 有如下程序 main0 { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是 A) 6 B) 3 7. 有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为 9 的表达式是 A) *P+9 B) *(P+8)
第 7 页 共 7 页
D) err
12.若二维数组 a 有 m 列,则在 a[i][j]前的元素个数为__________。 A) j*m+j B) i*m+j C) (i-1)*m+j-1 D) i*m+j+1
二、 填空题 (每题 2 分,共 10 分)
得分 评阅人

C语言09年6月份

C语言09年6月份

2009年6月闭卷考试考试时间:120分钟考试类别〖8〗考生注意:①本试卷包括第一卷和第二卷,考试时间共120分钟.②第一卷全部为选择题,每题下都有四个备选答案,但只有一个是正确的或是最佳的答案. 第一卷答案必须填涂在标准化答题卡上,标记在试题卷上的答案一律无效.每题只能填涂一个答案,多涂本题无效.考生答第一卷的题目时务必使用2B铅笔按正确的填涂方法在答题卡上相应题号的方格涂黑,如果改动答案,可用橡皮擦干净后再另涂新的答案.③第二卷均为填空题,在阅读和理解力原题程序的基础上,在第二卷答案卡上相应的空栏处填入适当的字符,语句.考生答第二卷的题目时,要用钢笔或圆珠笔书写,用铅笔答题无效.在试题卷上直接答题无效.④请考生在标准答题卡和第二卷答题卡上准确填涂或填写准考证号码.⑤请考生遵照上述要求,否则将会影响正确成绩.第一卷本卷共70分,其中第1~26题每题2分,第27~32题每题3分。

第一部分:基础知识1.对于声明int a[10],*p:,下两选项中合法的赋值语句是——D·=100; B.p=a[6]; C.p=a[3]+3; D.p=a+2;2. 以下叙述正确的是——B。

A.C语言程序中,main函数必须位于程序的最前面B.C语言程序中大、小写字母是有区别的C.C语言程序的每行只能写一条语句D.编译c程序时,可以发现注释行中的错误3. 若x,j,j和k都是int型变量。

则执行下列语句后,x的值为——C。

x=(i=4,j=16,k=32):A.4 B.16 C.32 D.524. 对于程序段int *p,a=5;p=&a;,下列各选项中全部表示地址的是——·A.a,p,&a B.*p,p,&a C.&* a,&a,*p D·&a,&*p,p5. 对于定义:int a[3][5],能正确引用数组元素的语句是——B。

A.a[3,2] B.a[2][3]C.a(3)(2) D.a[1+2][2]6. 判断char型变量ch是否为大写字母的正确表达式是——C·A.’A’<=ch<=’Z’B.(ch>=‘A’)OR(ch<= Z’)C.(ch>=’A’)&&(ch<=‘Z’)D.(‘A’<=ch)AND(‘Z’>=ch)7. 对于声明int i,j=2,*p=&j;.能完成i=j功能的语句(B )A. i=**p;B. i=*p;C. i=&j;D. *p=*&j;8.若希望当int a; a的值为奇数时,表达式的值为“真”, a的值为偶数时,表达式的值为“假”。

2009年3月全国计算机等级考试二级C语言笔试试题(含参考答案)2009年3月全国计算机等级考试二级

2009年3月全国计算机等级考试二级C语言笔试试题(含参考答案)2009年3月全国计算机等级考试二级

2009年3月全国计算机等级考试二级C语言笔试试卷(考试时间120分钟,满分100分)选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选择涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是A)编译程序B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。

下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为A)选择B)投影C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)以下选项中合法的标识符是A)1_1B)1-1C)_11D)1_ _(12)若函数中有定于语句:int k;,则A)系统将自动给K赋初值0B)这时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115B)0118C)1.5e1.5D)115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A)x*=x+1B)x++,2*xC)x*=(1+x)D)2*x, x+=2(15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”, x, y);的输出结果是A)123.141593B)12 3.141593C)12, 3.141593D)123.1415930(16)若有定义语句:double x, y,*px,*pY; 执行了px=&x; py=&y;之后,正确的输入语句是A)scanf(“%f%f”,x,y);B)scanf(“%f%f”,&x,&y);C)scanf(“%lf%le”,px,py);D)scanf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:if(表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序#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的整数(19)有以下程序#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);}程序运行后的输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,1(20)以下程序段中的变量已正确定义for( i=0; i<4; i++,i++)for( k=l; k<3; k++);printf(“*”);程序段的输出结果是A)********B)****C)**D)*(21)有以下程序#iinclude <stdio.h>main(){ char *s= {“ABC”};do{ printf(“%d”;*s%l0); s++}whi1e(*s);}注意:字母A的ASCII码值为65。

2009年9月计算机二级考试C语言真题及答案[1]1

2009年9月计算机二级考试C语言真题及答案[1]1

2009年9月计算机二级考试C语言真题一、选择题(每题2分,共计70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装B)自顶向下C)模块化D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形10.(10)有三个关系R,S,和T如下:11.(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用的数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整12.(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned13.(13)阅读以下程序#include<stdio.h>main(){int case;float printF;printf("请输入2个数:");scanf("%d%f",&case,&printF);printf("%d%f\n",case,printf);}该程序在编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无措,printf不能输出case的值14.(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)515.(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)1016.(16)有以下程序#include<stdio.h>main(){int a=1,b=0;printf("%d,",b=a+b);printf("%d",a=2*b);}程序运行后的输出结果是A)0,0B)1,0C)3,2D)1,217.(17)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;}18.(18)有以下程序#include<stdio.h>main(){int c=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是A)3B)5C)7D)919.(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c))k=1;else k=0;B)if((a>b)||(b>c))k=1;else k=0;C)if(a<=b)k=0;else if(b<=c)k=1;D)if(a>b)k=1;else if(b>c)k=1;else k=0;20.(20)有以下程序#include<stdio.h>main(){char s[]={"012xy"};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>'a'&&s[i]<='z')n++;printf("%d\n",n);}程序运行后的输出结果是A)0B)2C)3D)521.(21)有以下程序#include<stdio.h>main(){int n=2,k=0;while(k++&&n++>2);printf("%d%d\n",k,n);}程序运行后的输出结果是A)0 2B)1 3C)57D)1 222.(22)有以下定义语句,编译时会出现编译错误的是A)char a='a';B)char a='\n';C)char a='aa';D)char a='\x2d';23.(23)有以下程序#include<stdio.h>main(){char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68B)D,69C)E,DD)输出无定值24.(24)有以下程序#include<stdio.h>void fun(int p){int d=2;p=d++;printf("%d",p);}main(){int a=1;fun(a);printf("%d\n",a);}程序运行后的输出结果是A)32B)12C)21D)2225.(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回, 但程序中有错导致不能实现预定功能#define MIN-2147463647int findmax(int x[],int n){int i,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];}return max;}造成错误的原因是A)定义语句int i,max中max未赋值B)赋值语句max=MIN;中,不应该给max赋MIN值C)语句if(max<x[i])max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置26.(26)有以下程序#include<stdio.h>main(){int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,227.(27)若有定义语句:int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1]28.(28)有以下程序#include<stdio.h>#include<string.h>main(){char str[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是A)9,One*WorldB)9,One*Dream!C)10,One*Dream!D)10,One*World29.(29)有以下程序#include<stdio.h>main(){int a[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是A)3344B)2050C)3040D)030 430.(30)有以下程序#include<stdio.h>#include<string.h>main(){char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,1031.(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串32.(32)下列函数的功能是fun(char*a,char*b){while((*b=*a)!='\0'){a++;b++;}}A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有'\0'33.(33)设有以下函数:void fun(int n,char*s){……}则下面对函数指针的定义和赋值均正确的是A)void(*pf)();pf=fun;B)void*pf();pf=fun;C)void*pf();*pf=fun;D)void(*pf)(int,char);pf=&fun;34.(34)有以下程序#include<stdio.h>int f(int n);main(){int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}int f(int n){static int a=1;n+=a++;return n;}程序运行后的输出结果是A)7B)8C)9D)1035.(35)有以下程序#include<stdio.h>#define f(x)x*x*xmain(){int a=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,6436.(36)下面结构体的定义语句中,错误的是A)struct ord{int x;int y;int z;};struct ord a;B)struct ord{int x;int y;int z;}struct ord a;C)struct ord{int x;int y;int z;}n;D)struct{int x;int y;int z;}a;37.(37)设有定义:char*c;以下选项中能够使字符型指针C正确指向一个字符串的是A)char str[]="string";c=str;B)scanf("%s",c);C)c=getchar();D)*c="string";38.(38)有以下程序#include<stdio.h>#include<string.h>struct A{int a;char b[10];double c;};struct A f(struct A t);main(){struct A a={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}struct A f(struct A t){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1002,ChangRong,1202.039.(39)有以下程序int r=8;printf("%d\n",r>>1);输出结果是A)16B)8C)4D)240.(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据一次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,只能是文本文件二、填空题(每空2分,共计30分)1.(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。

电子科技大学网络教育专科C语言在线考试答案

电子科技大学网络教育专科C语言在线考试答案

一、单项选择题( 每题 2 分,共30 分)1.以下描述正确的是(C)A. goto 语句只能用于退缩出多层循环。

B. switch语句中不能出现continue语句。

C.只能用continue语句中来终止本次循环。

D.在循环语句中break 语句不独立出现。

2.一个 C 程序的执行是从(A)A. C程序的 main 函数开始,到main 函数结束。

B.本程序的第一个函数开始,到本程序最后一个函数结束。

C.本程序的main 函数开始,到本程序文件的最后一个函数结束。

`D.本程序的第一个函数开始,到本程序main 函数结束。

3. C 语言中,要求运算数必须都是整数的运算符是(C)。

A.*4.假定B.-int i=3,j=4;C.%D.+执行语句 : printf("%d,%d,%d\n",i+++j,i,j);之后,其输出结果为:(C)A.7,4,4B. 8,4,4C. 7,3,4D.7,3,55.对 break 语句的正确描述。

(A)A . break 语句在 while语句中,立即终止执行while语句。

B. break 语句不能用于循环语句之外的语句。

6.在 C 语言中 , 下面那一个不是正确的概念( A )A.所有循环语句都要求至少要执行一次循环体。

B.goto 和 if 语句能构成循环语句。

C.循环过程只能包含,不能交叉。

D.循环体可以是一条语句。

7.以下对二维数组 a 的正确说明是(C)A . int a[ 3 ] [ ]; B. float a( 3, 4);C. int a[ 3 ] [ 4 ]D.float a( 3, )( 4 );8.对函数的正确描述(C)A.在C语言中可以嵌套定义函数。

B.自定义函数和调用函数可以不在一个源文件中。

C.函数定义都是平行的,独立的。

D.不能嵌套调用函数。

9.若用数组名作为函数调用的实参,传给形参的是(AA.数组的首地址 B.数组的第一个元素值C.数组的全部元素值D.数组中元素的个数10.对于 int *p; int a[]; p=a;的合法运算(C)A . a++;B . p=a; p++;相当于a++;C.++p;相当于a[1];D.若p中的地址为100 则 p++; 运算后,则其值为100)11.假设int x[] = {1,3,5,7,9,11}, *ptr; ptr = x;以下那些是对数组元素的正确引用( D )A. *(ptr--)B.x[6]C.*(--ptr)D.*(ptr++) 12.执行以下语句后的结果为(A)enum weekday {sun,mon=3,tue,wed,thu};enum weekday workday;workday = wed;printf("%d\n",workday);A. 5 B. 3 C.4 D.编译出错13.要定义一个结构体类型拟包含两个成员,其中成员变量变量 link是指向自身结构体的指针。

电大c语言期末考试题库及详解答案

电大c语言期末考试题库及详解答案

电大c语言期末考试题库及详解答案一、选择题1. 下列关于C语言的叙述中,正确的是()。

A. C语言是一种高级语言B. C语言是一种汇编语言C. C语言是一种机器语言D. C语言是一种面向对象的语言答案:A2. C语言中,用于定义变量的关键字是()。

A. varB. defineC. intD. let答案:C二、填空题1. 在C语言中,表示逻辑与的运算符是______。

答案:&&2. 若有定义 int a=5;,则执行语句 a+=2; 后,变量a的值是______。

答案:7三、简答题1. 请简述C语言中数组的声明和初始化方法。

答案:在C语言中,数组的声明方法是指定数组的类型、名称和大小。

例如,声明一个整型数组可以写作:int array[10];。

数组的初始化可以在声明时进行,也可以在声明后进行。

在声明时初始化,可以使用花括号指定每个元素的值,例如:int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};。

在声明后初始化,可以使用循环或者逐个赋值。

2. 解释C语言中指针的概念及其用途。

答案:指针是C语言中的一种数据类型,它存储了另一个变量的内存地址。

指针的用途非常广泛,包括动态内存分配、函数参数传递、数组操作等。

通过指针,可以间接访问和操作内存中的数据,这使得程序更加灵活和高效。

四、编程题1. 编写一个C语言程序,实现计算并打印100以内所有偶数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 100; i++) {if(i % 2 == 0) {sum += i;}}printf("100以内所有偶数的和为: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转的功能。

答案:```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int length = strlen(str);for(int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("反转后的字符串为: %s\n", str); return 0;}```。

桂林电子科技大学C语言程序设计习题集及答案(已处理)

桂林电子科技大学C语言程序设计习题集及答案(已处理)

一单项选择题每题2分共44分1 以下叙述正确的是__C_A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从_B__开始执行的A 程序中第一个函数B 名为main的函数C 包含文件头文件的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句_B__A a b 58B iC a 58b 58D k int ab4 下面标识符中合法的用户标识符是_B__A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中正确的是_A__A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是_A__A B C D7 设a和b均为int型变量则执行以下语句后的输出为_B__int a 20 int b 3 printf "d\n"a b 2A 20B 21C 0D 238 已知int i则执行语句 i 26后i的值为_A__A 2B 3C 26D 不确定9 以下合法的字符常量为_D__A abB \482C \D \xaf10 若y为int型变量则执行以下语句后y的值是_C__y 8 y y- yyA 64B –56C –112D –4811 以下合法的浮点型常量是_D__A e-3B 15e24C 314e2LD 314 e 512 设int数据占用两个字节float数据占用四个字节double数据占用8个字节且已知float a 2int b 3则执行下列语句输出为__A_printf "d"sizeof ab 25A 4B 8C 6D 713 设int型占2个字节且int i -2则语句printf "u"i 的输出结果为_C __A 0B -2C 65534D 6553514 若xyz均为整型常量且a 100则执行下列语句后的z值为_A_x a y --a z xy-a--A 100B 400C 200D 30015 若有以下定义和语句int u 010v 0x10w 10printf "ddd\n"uvw 则输出结果是_A__A 81610B 101010C 8810D 8101016 设xy为int型变量则执行下列语句后y的值是__A _x 5 y xx y --y--yA 529B 2401C 1209D 62517 假设在程序中abc 均被定义成整型并且已赋大于1的值则下列能正确表示代数式A 1abcB 1 abcC 1ab float cD 10abc18 若有定义int a 8b 5cchar d A则执行语句c abda05后c的值为_A__A 2B 25C 3D 类型不一致无法计算编译出错19 在有以下程序mainint i 10j 1i ijprintf "ddd\n"iji执行后输出结果是_C_A 12311B 12211C 11311D 1231220 已知int i 65则putchar i printf "d"i printf "c"i 的输出结果为_A__A A65AB 6565AC AA65D AAA21 已知int yai 1则语句printf "dd"-i y a 363 的输出结果为_A__A -110B -218C 03D 11822 有以下程序mainchar abcda \b \xbcc \0xabd \023printf "cccc\n"abcd编译时出现错误以下叙述中正确的是_A__A 程序中只有a \语句不正确B b \xbc语句不正确C d \023语句不正确D a \和c \0xab语句都不正确二填空题第1题2分其余每题3分共56分1 设x为int型变量请写出描述x是偶数的表达式是_x2 0__2 已知scanf "a db dc d"abc 若从键盘输入234三个数分别作为变量abc 的值则正确的输入形式是_a 2b 3c 4__3 设有语句int a 3则执行了语句 a a- aa后变量a的值是_-12__4 以下程序的输出结果是_10 6__mainint a -10b -3printf "d\n"-aprintf "d\n"-ab5 以下程序的输出结果是_242__mainchar cc 0362printf "d\n"c6 以下程序段n所赋的是八进制数int m 32767n 032767 printf "do\n"mn7 字符串"\\name\\\101ddress\b\xaf"的长度为_15__8 有以下程序段int m 0n 0 char c ascanf "dcd"mcnprintf "dcd\n"mcn若从键盘上输入10A10 则输出结果是_10A10__9 以下程序的输出结果是___mainprintf "dox\n"101010printf "ddd\n"100100x10printf "dx\n"01201210 设abc为整形变量且a 2b 3c 4则执行完语句 a 16 b - c 之后变量a 的值为_28_11 以下程序的输出结果为__12_mainint x 023printf "x\n"--x12 以下程序的结果为___mainint a 2b 3cdc a a ad b b bprintf "a d c d\n"acprintf "b d d d\n"ad13 以下程序mainchar ch1ch2ch3scanf "ccc"ch1ch2ch3printf "ccccc"ch1ch2ch3当输入ABC时运行结果为 1 当输入A BC时运行结果为 214 若有定义float x以下程序段的输出结果是___x 516894printf "f\n" int x100005 float 100015 以下程序的功能是输入一个小写字母输出对应的大写字母将程序补充完整mainchar ch1 从键盘输入一个小写字母2 将该字母转换为大写字母3 输出转换后的结果16 当运行以下程序时在键盘上从第一列开始输入9876543210↙此处↙代表回车则程序的输出结果是___mainint a float bcscanf "2d3f4f"abcprintf "\na db fc f\n"abc17 以下程序的运行结果是___mainprintf "125f\n"1231234567printf "12f\n"1231234567printf "128d\n"12345printf "128s\n""abcdefghij"18 运行以下程序时如从键盘上输入abcdefg↙则输出结果是___mainchar ch1ch2ch3ch1 getchar ch2 getchar ch3 getcharputchar ch1 putchar ch2 putchar ch3putchar \n}19 运行以下程序时如从键盘上输入 a 3b 5↙353512↙abc↙后结果是___mainint ab float xy char c1c2scanf "a db d"abscanf "fe"xyscanf "ccc"c1c1c2printf "a db dx fy fc1 cc2 c\n"abxyc1c2顺序选择结构程序设计一单项选择题每题2分共40分1 以下程序运行后的输出结果是mainint a 0b 0a 10b 20 printf "ab d\n"abA ab 10B ab 30C 30D 出错以下程序运行后的输出结果是maindouble d 32 int xyx 12 y x38 50printf "d\n"dyA 3B 32C 0D 3073 以下程序运行后的输出结果是maindouble d float f long l int ii f l d 203printf "d ld 1f 1f\n"ilfdA 6 6 60 60B 6 6 67 67C 6 6 60 67D 6 6 67 604 以下程序运行后的输出结果是以下程序运行后的输出结果是y x-1 printf "d d\n"xyy z---1 printf "d d "zxy --z-1 printf "d d\n"zxA 3 1 4 3B 3 1 3 3C 3 1 4 3D 2 1 3 22 4 1 4 2 4 2 2 2 4 1 2 13 1 26 以下程序运行后的输出结果是mainint xyzx y 1z xyyprintf "ddd\n"xyzA 233B 232C 231D 2217 以下程序运行后的输出结果是mainint x 4y 7x- y y xprintf "d d\n"xyA 4 7B -3 -3C -3 11D -3 48 以下程序运行后的输出结果是printf "d\n"b aA 65536B 0C 1D -19 以下程序abc C abc D abc11 在嵌套使用if语句时C语言规定else总是A 和之前与其具有相同缩进位置的if配对B 和之前与其最近的if配对C 和之前与其最近不带else的if配对D 和之前的第一个if配对以下程序运行后的输出结果是A 0B 1C 2D 314 若k是int型变量下面的程序段的输出结果是 Ck -3if k 0 printf ""else printf ""A BC D 有语法错误无输出15 以下程序运行后的输出结果是以下程序运行后的输出结果是main int x1 1x2 0x3 0if x1 x2x3 printf ""else printf ""A B 有语法错误 C D 无输出结果17 当a 1b 3c 5d 4时执行下面一行程序后x的值是_B__if a bif c d x 1else if a cif b d x 2else x 3else x 6else x 7A 1B 2C 3D 618 下列叙述中正确的是A break语句只能用于switch语句B 在switch语句中必须使用defaultC break语句必须与switch语句中的case配对使用D 在switch语句中不一定使用break语句以下程序运行后的输出结果是includemainint x 1y 0a 0b 0switch xcase 1switch ycase 0abreakcase 1bbreakcase 2abbreakprintf "a db d\n"abA a 2b 1B a 1b 1C a 1b 0D a 2b 2二填空题每题3分共30分1 以下程序运行后的输出结果是以下程序运行后的输出结果是以下程序运行后的输出结果是mainint i 5jkj iiik i i iprintf "i 5d j 5d\nk 5d\n"ijk4 下面的程序运行时从键盘上输入9876543210 程序的输出结果是___mainint a float bcscanf "2d2f2f"abcprintf "a db 1fc 0f"abc5 下面程序的输出结果是___mainchar ch1ch2ch1 A5-3 ch2 A6-3printf "dc\n"ch1ch26 执行下面的语句printf "d\n" a 35a4a5 输出是___7 以下程序运行后的输出结果是int x 3if x2 printf "d"x printf "d\n"x10 以下程序运行后的输出结果是switch m2case 1 mcase 2 m 3case 5 m 6breakdefault m- 7printf "d\n"m三程序填空每空5分共30分1 下列程序的输出结果是1600请填空mainint a 9b 2float x 1 y 11zz a2bxy12printf "52f\n"z2 完成以下程序输入变量abc的值判断abc能否组成三角形计算三角形面积公式为include2mainint abc3printf "please input the value of abc"scanf "d d d" 4if 56s sqrt p p-a p-b p-cprintf "Yesthis is a triangle\n the area is 2f\n"selse printf "Nothis is not a triangle\n"循环结构程序设计一单项选择题每题2分共40分1 以下程序中while循环的循环次数是___mainint i 0while i 10if i 1 continueif i 5 breakiA 1B 10C 6D 死循环2 以下程序的执行结果是___mainint n 9while n 6 n-- printf "d"n该程序的输出结果是A 987B 876C 8765D 98763 以下程序段while循环执行的次数是___int k 0while k 1 kA 无限次B 有语法错C 一次也不执行D 执行1次4 以下叙述正确的是___A do-while语句构成的循环不能用其它语句构成的循环来代替B do-while语句构成的循环只能用break语句退出C 用do-while语句构成的循环在while后的表达式为非零时结束循环D 用do-while语句构成的循环在while后的表达式为零时结束循环5 以下程序的执行结果是___mainint aya 10 y 0do a 2 y aprintf "a d y d\n"ayif y 20 breakwhile a 14A a 12 y 12B a 12 y 12a 14 y 16 a 16 y 28a 16 y 20a 18 y 24C a 12 y 12D a 12 y 12a 14 y 26a 14 y 446 以下程序的执行结果是___mainint x 23do printf "d"x-- while xA 321B 23C 不输出任何内容D 陷入死循环7 有以下程序段输出结果是___int x 3do printf "d "x- 2 while - -xA 1B 3 0C 1 -2D 死循环8 以下程序的输出结果是___mainint a 0ifor i 1i 5iswitch icase 0 case 3 a 2case 1 case 2 a 3defaulta 5printf "d\n"aA 31B 13C 10D 209 以下程序的输出结果是___mainint i 0a 0while i 20forif i10 0 breakelse i--i 11 a iprintf "d\n"aA 21B 32C 33D 1110 以下循环体的执行次数是___mainint ijfor i 0j 1i j1i 2j-- printf "d \n"iA 3B 2C 1D 011 下列程序的输出结果是___mainint ijm 0n 0for i 0 2ifor j 0j 2jif j i m 1nprintf "d\n"nA 4B 2C 1D 012 下列程序的输出结果是___mainint isumfor i 1i 3sum sum iprintf "d\n"sumA 6B 3C 死循环D 013 以下程序执行后sum的值是___mainint isumfor i 1i 6i sum iprintf "d\n"sumA 15B 14C 不确定D 0 14以下程序执行后的输出结果是___mainint in 0for i 2i 5ido if i3 continue n while inprintf "n d\n"nA n 5B n 2C n 3D n 415 下列语句中能正确输出26个英文字母的是___A for a aa zprintf "c"aB for a aa z printf "c"aC for a aa zprintf "c"aD for a aa zprintf "c"a16 以下程序执行后的输出结果是___mainint x 1y 1while y 5if x 10 breakif x2 0x 5 continuex- 3 yprintf "dd"xyA 66B 76C 103D 7317 以下程序执行后的输出结果是___mainint a 5while a-- 5switch acase 1acase 4a 4case 5a 5breakdefaulta- 5printf "d\n"aA 12B 7C 5D 1318 对于下面的for循环语句可以断定它执行___次循环for x 0y 0 y 67 x 5 x printf "----"A无限 B 不定 C 5次 D 4次19 在执行以下程序时如果从键盘上输入ABCdef则输出结果为___include "stdioh"mainchar chwhile ch getchar \nif ch A ch Z ch ch32else if ch a ch z ch ch-32printf "c"chprintf "\n"A ABCdefB abcDEFC abcD DEF20 当执行以下程序时___int a 1do a aa while aA 循环体将执行1次B 循环体将执行2次C 循环体将执行无限次D 系统将提示有语法错误二填空题每空3分共33分1 若输入字符串abcde 则以下while循环体将执行___次while ch getchar e printf ""2 以下while循环执行的次数是___k 0 while k 10 k k13 下列程序的输出结果是___mainint x 0y 5z 3while z-- 0 x 5 y y-1printf "ddd\n"xyz4 下面程序的功能是计算1到10之间的奇数之和及偶数之和请填空mainint abcia c 0for i 0i 10i 2a i_ 1c bprintf "偶数之和 d\n奇数之和 d\n"a 25 下面程序的功能是输出100以内能被3整除且个位数为6的所有整数请填空mainint ijfor i 0 _ 1 ij i106if _ 2 continueprintf "d\n"j6 以下程序的输出结果是___mainint sifor s 0i 1i 3is iprintf "d\n"s7 要使以下程序段输出10个整数请填入一个整数for i 0i ___printf "d \n"i 28 程序的功能是根据以下近似公式求π值请填空完成求π的功能include "mathh"mainint n 30000 double s 00 long ifor i 1i ni s s_ 1printf "pi f\n"_ 2三程序填空题每空3分共27分1 下列程序是求的值include "stdioh"mainint i 2 float sum 1while 1sum sum10i 2printf "sum f\n" 32 以下程序的功能是从键盘输入若干个学生的成绩统计最高成绩和最低成绩当输入为负数时结束输入mainfloat xminscanf "f"xmin 1do if x xif x min 2scanf "f"xwhile 3printf "ff"min3 下面的程序用来求出所有的水仙花数所谓水仙花数是指一个3位数它的各位数字的立方和恰好等于它本身mainint nijkfor n 100 1 判断3位数n是否是水仙花数i n100 i是n的百位上的数字j 2 j是n的十位上的数字k n10 k是n的个位上的数字if 3 printf "d\n"n数组一单项选择题每题2分共40分1 以下对一维整型数组a的正确定义说明的是___A int a 10 Bint n 10a[n] C int n D define SIZE 10scanf "d"n int a[SIZE]int a[n]2 若有定义说明int a[10]则对数组a的元素正确引用的是___A a[10]B a[35]C a 5D a[10-10]3 执行下面程序段后变量k 的值是___int k 3s[2]s[0] k k s[1]10A 不定值B 33C 30D 104 以下程序的输出结果是___mainint ika[10]p[3]k 5for i 0i 10i a[i] ifor i 0i 3i p[i] a[i i1 ]for i 0i 3i k p[i]2printf "d\n"kA 20B 21C 22D 235 以下对一维整型数组a初始化的语句中正确的是___A int a[10] 00000B int a[10]C int x 2a[10] 10xD int a[10] 06 若有以下说明则数值为4的表达式是___int a[12] 123456789101112char c adgA a[g-c]B a[4]C a[d-c]D a[d-c]7 下列程序运行后的输出结果是___define 10void mainint isuma[] 12345678910sum 1for i 0i i sum- a[i]printf "sum d\n"sumA sum 55B sum -54C sum -55D sum 548 以下程序的输出结果是___mainint y 18i 0ja[8]do a[i] y2 i y y2 while y 1for j i-1j 0j-- printf "d"a[j]A 1000B 1001C 1010D 11009 以下对二维数组a的正确定义说明的是___A int a[3][]B float a 34 Cdouble a[1][4] D float a 3 410 若有定义说明int a[3][4]则对数组a的元素的引用非法的是___A a[2][21]B a[1][3]C a[4-2][0]D a[0][4]11 以下不能对二维数组a进行正确初始化的语句是___A int a[2][3] 0B int a[][3] 12 0C int a[2][3] 12 34 56D int a[][3] 12345612 下列数组定义语句中正确的是___A char a[][] abcdefB char a[2][3] abC char a[][3] abcdefD char a[][] abcdef13 下列程序运行后的输出结果是___mainint a[4][4]ijkfor i 0i 4ifor j 0j 4j a[i][j] i-jfor i 1i 4ifor j i1j 4jk a[i][j] a[i][j] a[j][i] a[j][i] kfor i 0i 4iprintf "\n"for j 0j 4j printf "4d"a[i][j]A 0 -1 -2 -3B 0 1 2 31 0 -1 -2 -1 0 1 22 1 0 -1 -2 -1 0 13 2 1 0 -3 -2 -1 0C 0 -1 -2 -3D 0 1 2 31 0 12 -1 0 -1 -22 -1 0 1 -2 1 0 -23 -2 -1 0 -3 2 1 014 以下程序的输出结果是___mainint ia[4][4] 135 246 357printf "dddd\n"a[0][3]a[1][2]a[2][1]a[3][0]A 0650B 1470C 5430D 输出值不定15 有以下程序mainint x[3][2] 0 ifor i 0i 3i scanf "d"x[i]printf "3d3d3d\n"x[0][0]x[0][1]x[1][0]若运行时输入2 4 6 则输出结果是___A 2 0 0B 2 0 4C 2 4 0D 2 4 616 下列描述不正确的是___A 字符型数组中可以存放字符串B 可以对字符型数组进行整体输入和输出C 可以对整型数组进行整体输入和输出D 不能在赋值语句中通过赋值运算符对字符型数组进行整体赋值17 对于以下定义叙述正确的是___char x[] "abcdef"char x[] ab cdefA 数组x和数组y等价B 数组x和数组y的长度相等C 数组x的长度大于数组y的长度D 数组x的长度小于数组y的长度18 以下选项中不能正确赋值的是___A char s1[10]s1 "Ctest"B char s2[] CtestC char s3[20] "Ctest"D char s4[30]strcpy s4"Ctest"19 若有定义和语句char s [10]s "abcd"printf "s\n"s 则输出结果是___以下□表示空格A abcdB aC abcd□□□□□D 编译不通过20 当执行下面程序时如果输入ABC则输出结果是___includeincludemainchar ss[10] "12345"gets ss strcat ss "6789"printf "s\n"ssA ABC6789B ABC67C 12345ABC6D ABC45678二填空题每空3分共24分1 若int类型变量占两个字节定义int x[10] 024 则数组x在内存中所占的字节数是___2 若有定义char a[] "\\141\141abc\t"则数组a在内存中所占的字节数是___3 下列程序的输出结果是___mainint ia[10]for i 9i 0i-- a[i] 10-iprintf "ddd\n"a[2]a[5]a[8]4 下列程序运行的结果是mainchar ch[7] "65ab21" int is 0for i 0ch[i] 0 ch[i] 9i 2 s 10sch[i]-0printf "d\n"s5 有定义语句char s[100]d[100]int j 0i 0且s中已赋字符串请填空以实现字符串复制注意不得使用逗号表达式while s[i]d[j] ___ jd[j] 06 下面程序运行的结果是mainchar s[] "abcdef"s[3] \0printf "s\n"s7 以下程序的输出结果是mainchar ch[3][5] "AAAA""BBB""CC"printf "\"s\"\n"ch[1]8 以下程序的输出结果是___mainchar ch[] "abc"x[3][4] int ifor i 0i 3i strcpy x[i]chfor i 0i 3i printf "s"x[i][i]printf "\n"三程序填空题每空3分共36分1 以下程序的功能是从键盘上输入若干个学生的成绩用输入负数结束输入统计出平均成绩并输出低于平均分的学生成绩请填空include "stdioh"mainint n 0i float x[1000]sum 00aveaprintf "Enter mark\n" scanf "f"awhile a 00 n 1000sum 1 x[n] 2n scanf "f"aave 3print "Output\n"printf "ave f\n"avefor i 0i ni if 4 printf "f\n"x[i]2 以下程序的功能是求出矩阵x的上三角元素之积其中矩阵x的行列数和元素的值均由键盘输入请填空define M 10mainint x[M][M] int nij long s 1printf "Enter a integer 10 \n"scanf "d"nprintf "Enter d data on each line for the array x\n"nfor 1for j 0j nj scanf "d"x[i][j]for i 0i nifor 2 3printf "ld"s3 以下程序数组a中存放一个递增数列输入一个整数并将它插入到数组a 中使之仍为一个递增数列请填空mainint a[ 1 ] 1102030405060708090 xipscanf "d"xfor i 0p 10i 10iif x a[i] p i 2for i 9i pi-- a[i1] a[i]3for i 0i 10i printf "5d\n"a[i]printf "\n"4 以下程序的功能是将t数组的内容连接到s数组内容的后面使s数组保存连接后的新字符串mainstatic char s[30] "abcdefg"t[] "abcd" int i 0j 0while s[i] \0 1while t[j] \0 s[ij] t[j] j2printf "s\n"s函数一单项选择题每题2分共40分1 以下正确的函数定义是___A double fun int xint yB double fun int xyz xy return z int z return zC fun xyD double fun int xint yint xy double z double zz xy return z return z2 以下正确的说法是___A 实参和与其对应的形参各占用独立的存储单元B 实参和与其对应的形参共占用一个存储单元C 有当实参和与其对应的形参同名时才共占用相同的存储单元D 形参是虚拟的不占用存储单元3 若调用一个函数且此函数中没有return语句则正确的说法是___A 该函数没有返回值B 该函数返回若干个系统默认值C 能返回一个用户所希望的函数值D 返回一个不确定的值4 以下正确的描述是___A 函数的定义可以嵌套但函数的调用不可以嵌套B 函数的定义不可以嵌套但函数的调用可以嵌套C 函数的定义和函数的调用均不可以嵌套D 函数的定义和函数的调用均可以嵌套5 若用数组名作为函数调用的实参传递给形参的是___A 数组的首地址B 数组中第一个元素的值C 数组中的全部元素的值D 数组元素的个数6 以下不正确的说法是___A 在不同函数中可以使用相同名字的变量B 形式参数是局部变量C 在函数内定义的变量只在本函数范围内有定义D 在函数内的复合语句中定义的变量在本函数范围内有定义7 已知一个函数的定义如下double fun int x double y则该函数正确的函数原型声明为___A double fun int xdouble yB fun int xdouble yC double fun intdoubleD fun xy8 关于函数声明以下不正确的说法是___A 如果函数定义出现在函数调用之前可以不必加函数原型声明B 如果在所有函数定义之前在函数外部已做了声明则各个主调函数不必再做函数原型声明C 函数在调用之前一定要声明函数原型保证编译系统进行全面的调用检查D 标准库不需要函数原型声明9 调用函数的实参与被调用函数的形参应有如下关系___A 只要求实参与形参个数相等B 只要求实参与形参顺序相同C 只要求实参与形参数据类型相同D 上述三点均需具备10 凡在函数中未指定存储类别的变量其隐含的存储类别是___A 自动B 静态C 外部D 寄存器11 在源程序的一个文件中定义的全局变量的作用域是___A 在本文件的全部范围B 该程序的全部范围C 一个函数的范围D 从定义该变量的位置开始至该文件的结束12 下列程序运行后的输出的数据是___int sum int nint p 1s 0ifor i 1i ni s p ireturn smainprintf "sum 5 d\n"sum 5A sum 5 151B sum 5 152C sum 5 153D sum 5 15513 下列程序运行后的输出结果是___int c 1mainstatic int a 5int b 6printf "a db dc d\n"abcfuncprintf "a db dc d\n"abcfuncfuncstatic int a 4int b 10a 2c 10b cprintf "a db dc d\n"abcA a 5b 6c 1B a 5b 6c 11C a 5b 6c 1D a 5b 6c 1 a 6b 21c 11 a 5b 21c 11 a 5b 21c 11 a 6b 21c 11 a 5b 6c 11 a 5b 6c 11 a 5b 6c 11 a 5b 6c 11a 8b 31c 21 a 8b 31c 21 a 8b 31c 21 a 5b 31c 2114 运行下面的程序后其输出结果是___mainint a 6b 2cc f a f bprintf "d\n"cint f int xint yy xxreturn yA 9B 6C 36D 1815 下列程序输出结果是___includemystatic int x 3xreturn xmainint ixfor i 0i 2i x myprintf "d\n"xA 3B 4C 5D 616 下列程序的输出结果是___includeint abc int uint vint wwhile v w uv u v v wreturn umainint a 24b 16cc abc abprintf "d\n"cA 8B 6C 5D 417 下列程序运行后的输出结果是___mainstatic char s[] "abcdefgca"p s printf "s[] s\n"sp char s[]int ijfor i j 0s[i] \0i if s[i] a2 s[j] s[i]s[j] \0A s[] abcdefgcaB s[] abdefgaC s[] bcdefgcD 程序有错18 下列程序运行后的输出结果是___void mainint m 4n 2kk fun mn printf "d\n"kk fun mn printf "d\n"kint fun int xint ystatic int n 3i 2i n1 n ixyreturn nA 12B 12C 12D 1212 23 25 16 19 下列程序运行后的输出结果是___int x 1mainint i 5fun iprintf "dd\n"ixfun mint mm xx mchar x A printf "d\n"xprintf "dd\n"mxA 65B AC AD 6561 61 67 6761 61 67 5720 下列程序运行后若从键盘输入ABC四个字符后程序输出是___includemainvoid receivreceivvoid receivchar cc getcharputchar cif c receivputchar cA ABCB ABCABC C ABCCBAD ABCABC 二填空题每空3分共30分1 函数调用语句fun ab cde 实参个数为___2 凡在函数中未指定存储类别的局部变量其默认的存储类别为___3 在一个C程序中若要定义一个只允许本源程序文件中所有函数使用的全局变量则该变量需要定义的存储类别为___4 C语言规定调用一个函数时实参变量和形参变量之间的数据传递方式是___5 运行下面程序其输出结果是___includeint xyoneint aba 25b 10x a-by abmainint aba 9b 5x aby a-boneprintf "dd\n"xy6 运行下面程序其输出结果是___includemainvoid printdint n 123printd nvoid printd int nint iif n 0 n -n putchar -putchar n100if i n10 0 printd i7 运行下面程序从键盘输入四个字符xyz其输出是___includemainvoid recursionrecursionvoid recursionchar cc getcharputchar cif c recursionputchar c8 以下程序的输出结果是___includevoid fun int xif x2 0 fun x2 printf "d "x mainfun 3 printf "\n"9 以下程序运行结果是___int a 1int f int cstatic int a 2c c1return a cmainint ik 0for i 0i 2i int a 3 k f ak aprintf "d\n"k10.以下程序的运行结果是___int k 0void fun int mm k k m printf "m d\n k d "mkmainint i 4fun i printf "i d k d\n"ik三程序填空题每空3分共30分1 一个整数称为完全平方数是指它的值是另一个整数的平方例如81是个完全平方数因为它是9的平方下列程序是在三位的正整数中寻找符合下列条件的整数它既是完全平方数且三位数字中又有两位数字相同例如14412126762626等。

桂林电子科技大学C语言程序设计习题集及答案

桂林电子科技大学C语言程序设计习题集及答案

一 单项选择题(每题2分,共44分)1 以下叙述正确的是__C _。

A C 程序基本组成单位是语句BC 程序每一行只能写一个语句C 简单C 语句必须以分号作为结束符D 注释语句可以嵌套2 一个C 语言程序是从_B __开始执行的。

A 程序中第一个函数B 名为main 的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C 语言赋值语句_B __。

A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是 _B __。

A 1abcB includeC a-b-c123D char5 以下所列的C 语言整形常量中,正确的是_A __。

A 0x10B 0976C 076LD 01ff6 C 语言中下列运算符的操作数必须为整型的是_A __。

A %B ++C /D =7 设a 和b 均为int 型变量,则执行以下语句后的输出为_B __。

int a=20; int b=3; printf("%d\n ",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i 的值为_A __。

A 2B 3C 2.6D 不确定9 以下合法的字符常量为_D __。

A 'ab 'B '\482'C '\'D '\xaf '10 若y 为int 型变量,则执行以下语句后,y 的值是 _C __。

y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是_D __。

A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int 数据占用两个字节,float 数据占用四个字节,double 数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为__A _。

2009计算机二级c语言考试真题及答案

2009计算机二级c语言考试真题及答案

2009计算机二级c语言考试真题及答案一、单项选择题(每题2分,共40分)1. 在C语言中,下列关于变量声明的描述中,错误的是:A. 变量可以在函数内部声明B. 变量可以在函数外部声明C. 变量必须在函数内部声明D. 变量可以在语句中声明答案:C2. 若有定义:int a=5, b=10;,则表达式a+=b的值是:A. 15B. 5C. 10D. 0答案:A3. 在C语言中,下列关于数组的描述中,正确的是:A. 数组名代表数组中第一个元素的地址B. 数组名代表数组中最后一个元素的地址C. 数组名代表数组的总大小D. 数组名代表数组中所有元素的地址答案:A4. 下列关于指针的描述中,错误的是:A. 指针变量可以被赋值为一个变量的地址B. 指针变量可以被赋值为一个常量的值C. 指针变量可以被赋值为另一个指针变量的值D. 指针变量不能被赋值为一个函数的地址答案:D5. 在C语言中,下列关于函数的描述中,正确的是:A. 函数可以没有返回值B. 函数可以返回多个值C. 函数可以没有参数D. 函数必须有返回值答案:C6. 若有定义:char str[10]="hello";,则下列关于str数组的描述中,正确的是:A. str数组的长度为5B. str数组的长度为10C. str数组的内容为"hello"D. str数组的内容为"hello\0"答案:B7. 在C语言中,下列关于结构体的描述中,错误的是:A. 结构体可以包含不同类型的数据B. 结构体可以包含其他结构体C. 结构体不能包含函数D. 结构体可以包含指针答案:C8. 下列关于预处理指令的描述中,正确的是:A. #include <stdio.h> 是一个宏定义B. #define PI 3.14159 是一个条件编译指令C. #ifdef 是一个文件包含指令D. #pragma 是一个编译器指令答案:D9. 在C语言中,下列关于文件操作的描述中,错误的是:A. 使用fopen函数打开文件B. 使用fclose函数关闭文件C. 使用fread函数读取文件D. 使用fwrite函数写入文件答案:C10. 下列关于位运算的描述中,错误的是:A. & 表示按位与运算B. | 表示按位或运算C. ^ 表示按位异或运算D. ~ 表示按位非运算答案:D二、程序填空题(每空2分,共20分)给定以下程序片段,请在空白处填入正确的代码:```c#include <stdio.h>int main() {int a, b, sum;scanf("%d %d", &a, &b);sum = a + b;printf("Sum is: %d\n", sum);return 0;}```若要计算两个数的乘积,需要修改程序中的哪几行代码?答案:将第4行的 `sum = a + b;` 修改为 `sum = a * b;`。

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

桂林电子科技大学试卷2009-2010 学年第 2 学期课号0921306等课程名称C语言程序设计A (A卷; 闭卷)适用班级(或年级、专业)7院09级考试时间120 分钟班级学号姓名第一部分:基础知识(20题,共20分)1、表达式18/4*2/8值的数据类型为()A)int B)float C)double D)不确定2、在C语言中,int, char和short int三种类型变量所占用的内存大小是()。

A)均为2个字节 B)由用户自己定义 C)由所用机器的字长决定 D)是任意的3、C语言中函数返回值的类型是()A)return语句中的表达式类型 B)调用函数的类型C)总是int型 D)定义函数时所指定的函数类型4、凡是在函数中未指定存储类别的变量,其隐含的存储类别是()A)自动B)静态C)外部D)寄存器5、以下不正确的描述是()A)break语句只能用于循环语句和switch语句B)在switch语句中,break语句的作用也可用continue语句来替代C)在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行D)在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环6、以下说法正确的是()A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf (“%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scan f(“%f",&f);7、己知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=55;double x=1.42,y=5.2;则以下符合c语言语法的表达式是()A)a+=a-=(b=4)*(a=3) B)a=a*3=2C)x%(-3) D)y=float(i)8、已知ch是字符型变量,下面不正确的赋值语句是()A)ch=‟a+b‟; B) ch=‟\0‟; C)ch=‟7‟+‟9‟; D)ch=5+99、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c),为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是______。

A)132<回车>B)1,3,2<回车>C)a=l b=3c=2<回车>D)a=1,b=3,c=2<回车>10、逻辑运算符两侧运算对象的数据类型()A)只能是0或lB)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据11、一个c程序的执行是从()A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结柬C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束12、以下程序段()x=-1;do{x=x*x;}while(!x);A)是死循环 B)循环执行二次C)循环执行一次 D)有语法错误13、以下正确的叙述是()A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定B)C语言允许main函数带形参,形参名只能是argc和argvC)当main函数带有形参时,传给形参的值只能从命令行中得到D)若有说明:main(int argc,char *argv),则形参argc的值必须大于114、若有宏定义 #define mod(x,y) x%y ,则执行以下程序段后,输出为()int z,a=15,b=100;z=mod(b,a);printf(“%d/n”,z++);A)11 B)10 C)6 D)宏定义不合法15、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其正确的解释是_()main(){int *p,*q,a,b;p=&a;printf("input a:");scanf("%d",*p);……}A)*p表示的是指针变量p的地址B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值D)*p只能用来说明p是—个指针变量16、若有说明语句: char s1[4]=”12”; char *ptr;则执行下列语句后输出为()ptr=s1;printf(“%c/n”,*(ptr+1));A)字符…2‟ B)整数2 C)字符串“12” D)字符…1‟17、若有以下语句int x[]={2,4,6,8,10,12},*ptr;ptr=x;则对数组元素的正确引用为()A)x B)x[6] C)*(--ptr) D 、 *(++ptr)18、若有说明语句:int i,x[3][4];则不能实现将x[1][1]的值赋给变量i的语句是()A)i=*(*(x+1)+1) B)i=*(*(x+1)) C)i=x[1][1] D)i=*(x[1]+1)19、若用数组名作为函数调用的实参,传递给形参的是____。

A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数20、若有定义:int a[5];则a数组中首元素的地址可以表示为()A)&a B)a+l C)a D)&a[1]第二题:简单程序(15题,共45分)21、执行以下语句后b的值为()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A)5 B)0 C)6 D)122、运行下面的程序,其输出是()main(){int i=1;while(i<19)if(i++%5!=3) continue;else printf(“%4d”,i);printf(“/n”);}A)2 5 7 9 11 13 15 17 B)3 6 9 12 15 18C)4 9 14 19 D)3 8 13 17 1923、运行下面的程序后,其正确的输出是()main(){static int a[5]={7,2,8,4,5};static int *pa[5]={&a[0], &a[2], &a[1], &a[3], &a[4]};int **p,i;p=pa;for(i=0;i<5;i++){printf(“%d/t”,**p+2);p++;}printf(“/n”);}A)9 4 10 6 7 B)7 2 8 4 5C)7 4 10 4 5 D)9 10 4 6 724、下面程序运行后,其输出是()main(){int i;int n=2;while(++n<20){i=1;while(++i<n){if(n%i= =0)break;if(i= =n-1)printf(“%d/t”,n);}printf(“/n”);}}A)2 5 7 9 13 17 19 B)3 5 7 11 13 17 19C)2 3 5 7 11 13 17 19 D)3 5 7 11 13 17 2025、下面程序运行后,其输出是()main(){int i,j,k; int func();i=1,j=2,k=3;printf(“%d/n”,func((j+=k, j++),(i,i++,++i)));}int func(int x,int y){int z;z=x%y;return(z);}A)2 B)0 C)1 D)326、下面程序运行后,其输出是()int x,y;one(){int a,b;a=25,b=10;x=a-b;y=a+b;}main(){int a,b;a=9,b=5;x=a+b;y=a-b;one();printf(“%d,%d/n”,x,y);}A)14,4 B)14,35 C)15,35 D)15,427、下面程序运行后,其输出是()#include <stdio.h>void printd(int i);main(){int n=123;printd(n);}void printd(int n){int i;if(n<0){n=-n;putchar(…-…);}putchar(n%10+‟0‟);if((i=n/10)!=0)printd(i);}A)123 B)321 C)3 D)128、下面程序运行后,其输出是()struct sample{int a,b;char *ch;};void f1(struct sample parm);main(){struct sample arg;arg.a=1000;arg.b=100;arg.ch=”abcd”;f1(arg);}void f1(struct sample parm){ parm.a+=parm.b;parm.ch[2]=‟x‟;printf(“%d/n”,parm.a);printf(“%s/n”,parm.ch);}A)1000 B)1100 C)1100 D)100Abcd abcd abxd abcd 29、下面程序运行后,其输出是()main(){static char s[30]=”abcdefg”;static char t[]=”abcd”;int i,j;i=0;while(s[i]!=‟/0‟)i++;j=0;while(t[j]!=‟/0‟){s[i+j]=t[j];j++;}s[i+j]=‟/0‟;printf(“%s/n”,s);}A)abcdabcdefg B)abcdefg C)abcd D)abcdefgabcd30、下面程序运行后,其输出是()main(){ int a[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=i+j;for(i=1;i<4;i++)for(j=i+1;j<4;j++){ k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}for(i=0;i<4;i++){printf(“/n”);for(j=0;j<4;j++)printf(“%4d”,a[i][j]);}}A)0 1 2 3 B)0 1 2 3 C)0 1 2 3 D)3 2 1 01 2 3 4 1 2 5 4 1 2 4 2 4 3 2 12 3 4 5 2 3 4 5 2 3 5 3 5 4 3 23 4 5 6 3 4 5 6 3 4 6 4 6 5 4 3 31、运行下面的程序,其输出是()main(){ int a[]={4,2, 6,8,10},y=1,x,*p;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf(“%d/n”,y);}A)17 B)18 C)19 D)2032、运行下面程序,从键盘输入四个字符xyz#,其输出是()#include "stdio.h"main(){ void recursion();recursion();}void recursion(){char c;c=getchar();putchar(c);if(c!=‟#‟)recursion();}A)xyz# B)xyz#xyz# C)xyz##zyx D)xyzxyz33、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为()if ( a < b )if( c < d)x = 1;else if (a < c )if ( b < d )x = 2;elsex = 3;elsex = 6;else x = 7;供选择的答案是:A) 1 B) 2 C) 3D)634、有以下程序:main(int argc , char *argv[ ] ){int i;if ( argc <= 0 ) return ;for( i=1; i<argc ; i++) printf(“%c”, *argv[ i] );}经编译链接后生成的可执行文件是test.ext,若运行时输入以下带参数的命令行:test good luck执行后输出结果是()A)goodluck B)goo C)luc D)gl35、以下程序struct tree{ int x ;char *s;}t;fun(struct tree t) {t.x = 10;t.s = “here”;}main( ) {t.x = 1;t.x = “there”;fun ( t );printf(“%d, %s”, t.x , t.s );}执行后输出结果是()A)10, here B)1, there C)1,here D)10, there第三题:程序填空题在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。

相关文档
最新文档