《C语言程序设计》期中考试试卷
C语言期中考试试卷1

一.理论试题:1. C语言的运算符按运算对象的数目可以分为()。
A) 单目运算一种B) 单目和双目运算符C) 单目、双目和三目运算符D) 单目、双目、三目运算和四目运算符2. C语言表达式2/5*10的值是()。
A) 0.04 B) 4 C) 4.0 D) 03. 已知变量f和i的类型说明如下:float f=12.34; int i;则以下符合C语言语法的表达式是()。
A) i=(int)f%5 B) i=int(f)%5C) i=f%5 D) i=(int f)%54. 能正确表示数学式1≤x≤5的C语言表达式是()。
A) 1 <=x<=5 B) (x> =1)&(x<=5 )C) (x>=1 )&&(x<=5) D) (1 < =x)||(5> =x)5. 设变量c的数据类型是char,i的数据类型是int,f的数据类型是float,则C语言表达式c*i+c*f-i+100值的数据类型为()。
A) int B) float C) char D) 不确定6. C程序的执行从( )开始。
A) 程序中的第1个语句B) 程序中的第1个函数C)名为main 的函数D) 包含文件的第1个函数7.以下程序运行时要求输入10和20分别存放在变量x和y中,能正确输入数据的是()。
main(){int x,y;scanf("x=%d,y=%d",&x,&y);printf("x+y=%d",x+y);}(说明:用<CR>表示换行符,用_表示空格符)A) 10_20<CR> B) x=10,y=20<CR>C) 10<CR> D) x=10<CR>20<CR> y=20<CR>8. 在循环结构的循环体中执行break语句,其作用是()A) 结束本次循环,进行下次循环B) 继续执行break语句之后的循环体中各语句C) 跳出该循环体,提前结束循环D) 终止程序运行9. 对以下程序段描述正确的是()x=10;while(x) { x=x/4;}A) 不执行循环体B) 循环体执行一次C) 循环体执行二次D) 死循环10.下面的C语言代码的输出是()int a=2;switch(a){case 1;pri ntf(“In case 1 a =%d\n”,a);break;case 2:printf(“In case 2 a=%d\n”,a);case 3:printf(“In case 3 a=%d\n”,a);break;default:printf(“In default a = %d\n”,a);}A.In case 2 a=2 B.In case 2 a=2In case 3 a=2In default a=2C.In case 2 a=2In case 3 a=2 D.In case 2 a=2In default a=211. 执行int x=2,y=3后表达式x=(y==3)的值是()A)0 B)1 C)2 D)312. 执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是()A) 3 B) 4 C) 7 D) 1113. 要使以下程序的输出结果为4,则a和b应满足的条件是()main(){int s,t,a,b;scanf(“%d%d”,&a,&b);s=t=1;if(a>0) s += 1;if(a>b) t= s + t;elseif(a==b) t=5;else t=2*s;printf(“%d\n”,t);}A)a>0并且a<b B)a<0并且a<b C)a>0并且a>b D)a<0并且a>b14. 若int i;则以下循环语句的循环执行次数是()for (i=2;i==0;){printf(“%d”,i--);}A)无限次B)0次C)1次D)2次15. 下面程序的输出结果为()main(){int i;for(i=100;i<200;i++){if(i%5==0){continue;}printf(“%d\n”,i);break;}}A)100 B)101 C)无限循环D)无输出结果16. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y 的值为A) 不定值B) 4 C) 3 D) 117. 下面哪个表达式满足x为奇数时为真,x为偶数时为假。
c语言程序设计基础期中复习题

c语言程序设计基础期中复习题c语言程序设计是计算机科学与技术专业中非常重要的基础课程之一。
它不仅教会我们如何使用计算机语言编写程序,还培养了我们解决问题的逻辑思维能力。
下面是一些c语言程序设计基础的期中复习题,供同学们复习参考。
# 一、选择题1. 以下哪个选项是C语言中的关键字?- A. class- B. int- C. function- D. include2. C语言中,用于定义变量的关键字是:- A. define- B. declare- C. var- D. let3. 以下哪个是合法的C语言标识符?- A. 2variable- B. for- C. variable2- D. int4. 在C语言中,用于表示逻辑“与”的运算符是:- A. &&- B. ||- C. !- D. &5. C语言中,用于实现条件判断的语句是:- A. if- B. switch- C. case- D. default# 二、填空题1. 在C语言中,基本数据类型包括整型(int)、字符型(char)、______(请填写浮点型)等。
2. C语言中,字符常量可以用单引号括起来,例如'A',而字符串常量则需要用双引号括起来,例如"______"。
3. C语言中,一个完整的程序由______和函数组成。
4. 在C语言中,使用______语句可以实现循环控制。
5. C语言中,函数的返回类型是放在函数名之前的,例如int main()表示函数返回类型为______。
# 三、简答题1. 请简述C语言的基本数据类型有哪些,并简要说明它们的特点。
2. 请解释C语言中数组的定义和使用方式。
3. 描述C语言中函数的声明和调用过程。
4. 请说明C语言中指针的概念及其基本操作。
5. 解释C语言中结构体(struct)的作用和定义方式。
# 四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
大学计算机专业《C语言程序设计》期中试卷及答案(二)

大学计算机专业《C语言程序设计》期中试卷及答案试卷编号:9689所属语言:C语言试卷方案:期中考试试卷总分:100分共有题型:5种一、填空共15题(共计15分)第1题(1.0分)题号:92C语言中的字符变量用保留字【1】来说明.答案:=======(答案1)=======char第2题(1.0分)题号:433已知x=3,y=2,则表达式x*=y+8的值为【1】.答案:=======(答案1)=======30第3题(1.0分)题号:388设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】.答案:=======(答案1)=======1.0=========或=========1第4题(1.0分)题号:293getchar()函数只能接收一个【1】.答案:=======(答案1)=======字符第5题(1.0分)题号:437以下程序的输出结果为【1】,#include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);} 答案:=======(答案1)=======9,10第6题(1.0分)题号:498c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:=======(答案1)=======循环第7题(1.0分)题号:100已知a=13,b=6, a||b的十进制数值为【1】.答案:=======(答案1)=======1第8题(1.0分)题号:441设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为【1】.答案:=======(答案1)=======1第9题(1.0分)题号:457设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2后,t的值是【1】.答案:=======(答案1)=======1第10题(1.0分)题号:389设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i<=j;i++,j--) k=i+j;后,k的值为【1】.答案:=======(答案1)=======10第11题(1.0分)题号:421若输入字符串:abcde<回车>,则以下while循环体将执行【1】次.While((ch=getchar())=='e') printf("*");答案:=======(答案1)=======第12题(1.0分)题号:533设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++)scanf ("%d",&y);答案:=======(答案1)=======3第13题(1.0分)题号:328C语言中,数组元素的下标下限为【1】.答案:=======(答案1)=======第14题(1.0分)题号:346合并字符串的库函数是【1】,只写函数名即可.答案:=======(答案1)=======strcat第15题(1.0分)题号:341定义int a[2][3];表示数组a中的元素个数是【1】个.答案:=======(答案1)=======6二、判断共15题(共计15分)第1题(1.0分)题号:715整数 -32100可以赋值给int型和long int型变量.答案:Y第2题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double答案:Y第3题(1.0分)题号:928C程序中的关键字必须小写.答案:Y第4题(1.0分)题号:194若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5.答案:Y第5题(1.0分)题号:944C语言中,赋值表达式加上分号就构成了赋值语句.答案:Y第6题(1.0分)题号:716若i =3,则printf("%d",-i++);输出的值为 -4.答案:N第7题(1.0分)题号:950逻辑运算符中的"&&"和"||"低于关系运算符,"!"高于算术运算符.答案:Y第8题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第9题(1.0分)题号:869若有int i=10, j=0;则执行完语句if (j=0)i++; else i--; i的值为11.答案:N第10题(1.0分)题号:953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第11题(1.0分)题号:742若有说明int c;则while(c=getchar());是正确的C语句.答案:Y第12题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y第13题(1.0分)题号:736int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第14题(1.0分)题号:735如果想使一个数组中全部元素的值为0,可以写成int a[10]={0*10};答案:N第15题(1.0分)题号:926任何数组的下标都是从0开始;答案:Y三、单项选择共20题(共计40分)第1题(2.0分)题号:2004下列字符序列中,不可用作C语言标识符的是().A:b70B:#abC:symbolD:a_1答案:B第2题(2.0分)题号:2137下列表达式中,可作为C合法表达式的是().A:[3,2,1,0]B:(3,2,1,0)C:3=2=1=0D:3/2/1/0答案:B第3题(2.0分)题号:2037若k,g均为int型变量,则下列语句的输出为().k=017; g=111; printf("%d\t",++k); printf("%x\n",g++);A:15 6fB:16 70C:15 71D:16 6f答案:D第4题(2.0分)题号:2043已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为(). char a='a'; a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A:b,cB:a--运算不合法,故有语法错C:98,cD:格式描述和输出项不匹配,输出无定值答案:C第5题(2.0分)题号:2128下列程序段的输出结果为().float x=213.82631;printf("%3d",(int)x);A:213.82B:213.83C:213D:3.8答案:C第6题(2.0分)题号:2222语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)().A:a\bre\'hi\'y\\\bouB:a\bre\'hi\'y\bouC:re'hi'youD:abre'hi'y\bou答案:C第7题(2.0分)题号:2028假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是().A:7B:8C:9D:2答案:B第8题(2.0分)题号:2145int a=3,b=2,c=1;if(a>b>c)a=b;else a=c;则a的值为().A:3B:2C:1D:0答案:C第9题(2.0分)题号:2062假定所有变量均已正确定义,下列程序段运行后x的值是().k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4;else x=3;A:14B:4C:15D:3答案:B第10题(2.0分)题号:2136下列程序段的输出结果为().int a=7,b=9,t;t=a*=a>b?a:b;printf("%d",t);A:7B:9C:63D:49答案:C第11题(2.0分)题号:2319在C语言中,要求运算数必须是整型的运算符是(). A:^B:%C:!D:>答案:B第12题(2.0分)题号:2251以下不是无限循环的语句为().A:for(y=0,x=1;x>++y;x=i++) i=x;B:for(;;x++=i);C:while(1){x++;}D:for(i=10;;i--) sum+=i;答案:A第13题(2.0分)题号:2123设j和k都是int类型,则for循环语句().for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第14题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无B:######C:#D:###答案:B第15题(2.0分)题号:2059以下程序的运行结果是().main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A:12457810B:369C:12D:1234567890答案:A第16题(2.0分)题号:2147while(fabs(t)<1e-5)if(!(s/10))break;循环结束的条件是(). A:t>=1e-5||t<=-1e-5||s>-10&&s<10B:fabs(t)<1e-5&&!s/10C:fabs(t)<1e-5D:s/10==0答案:A第17题(2.0分)题号:2273设有数组定义: char array [ ]="China"; 则数组 array所占的空间为().A:4个字节B:5个字节C:6个字节D:7个字节答案:C第18题(2.0分)题号:2280若有说明 int a[3][4];则对a数组元素的正确引用是().A:a[2][4]B:a[1,3]C:a[1+1][0]D:a(2)(1)答案:C第19题(2.0分)题号:2269以下不正确的定义语句是().A:double x[5]={2.0,4.0,6.0,8.0,10.0};B:int y[5]={0,1,3,5,7,9};C:char c1[]={'1','2','3','4','5'};D:char c2[]={'\x10','\xa','\x8'};答案:B第20题(2.0分)题号:2074下列语句中,不正确的是().A:static char a[2]={1,2};B:static int a[2]={'1','2'};C:static char a[2]={'1','2','3'};D:static char a[2]={'1'};答案:C四、程序填空共4题(共计24分)第1题(6.0分)题号:24/*------------------------------------------------------- 【程序填空】---------------------------------------------------------题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。
c程序设计期中考试题及答案

c程序设计期中考试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义整型变量的关键字是()。
A. intB. floatC. doubleD. char答案:A2. 下列哪个选项是C语言中的合法标识符?()A. 2variableB. variable2C. variable-2D. variable$2答案:B3. 在C语言中,以下哪个选项是正确的字符串字面量?()A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!'"D. 'Hello, World!'答案:A4. 若有以下代码段:```cint a = 10, b = 20;a =b = a + b;```则变量a的值是()。
A. 10B. 30C. 20D. 无法确定答案:B5. C语言中,哪个函数用于计算并返回字符串的长度?()A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A6. 在C语言中,以下哪个是正确的二维数组声明?()A. int array[3][4];B. int array[][];C. int array[3][];D. int array[4,3];答案:A7. C语言中,以下哪个是正确的函数声明?()A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(a, b);答案:A8. 下列哪个选项是C语言中的逻辑运算符?()A. &&B. ||C. !D. 以上都是答案:D9. 在C语言中,以下哪个选项是正确的条件语句?()A. if (condition) { statement1; } else { statement2; }B. if (condition) statement1; else statement2;C. if (condition) statement1; if (condition) statement2;D. if (condition) { statement1; statement2; }答案:A10. C语言中,以下哪个选项是正确的循环语句?()A. for (int i = 0; i < 10; i++) { /* code */ }B. while (condition) { /* code */ }C. do { /* code */ } while (condition);D. 以上都是答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义字符型变量的关键字是()。
C语言程序设计期中模拟考试

一、单选题1.以下叙述中正确的是(1) 。
A.若e1、e2为变量,e为表达式,则e1=e2=e使得e1、e2都具有表达式e的值。
B.程序中不能定义与库函数名同名的变量。
C.一个C源程序可放在多个文件中,但一个函数不能跨放在两个不同的文件中。
D.C语言编译系统以函数为单位编译源程序。
2.若a,b,c都是实型变量,则下列语句中除(2) 之外,都可能得不到正确的计算结果。
A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);B.b=2.0e38+1.0-2.0e38;C.a=456*768/2;D.double define=1.0;3.以下正确的常量是(3 )。
A....077‟ B....\0x89‟ C.3.14u D. (012)4.若已有声明“float x= -1234.5678; int m,n=4;”则执行“m=printf(“\n%8.3f\n”,x)/n;”语句后,变量m的值是(4) 。
A. 2 B. 3 C. 4 D. 55.若已有声明“int x1; float x2; long x3; char x4;”,且以下选项均出现在switch语句中,其中正确的是(5) 。
A.case 1.1: scanf("%d",&x1);break;B.case 1+2: scanf("%f",&x2); break;C.case 'x':case 'y'-1: scanf("%ld",&x3); break;D.case x4: scanf("%c",&x4); break;6.以下表达式中,能够作为“if(e) 语句”中判断条件表达式e 的是(6) 。
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 语言程序。
C语言期中考试卷1,4

32、阅读以下程序,该程序的输出结果为[B] 。 main() { char *s=“xyz”,*t=“xzy”; if(*s==*t)printf(“1,”); else printf(“2,”); if(!strcmp(s,t))printf(“3\n”); else printf(“4\n”); } [37]A) 1,3 B) 1,4 C) 2,3 D) 2,4 33、阅读以下程序,该程序的输出结果为[D] 。 main() { int a[2][2],i,j; for(i=0;i<2;i++) for(j=0;j<2;j++) a[i][j]=i*2+j; for(i=0;i<2;i++){ for(i=0;j<2;j++) printf(“%d”,a[j][i]); printf(“\n”); } } [38]A) 1 3 B) 0 1 C) 1 2 D) 0 2 2 4 2 3 0 3 1 3 34、阅读以下程序,当输入字符序列 AB#CD 并回车时,程序的输出结果为[D] 。 #include<stdio.h> void rev() { char c; c=getchar(); if(c==‘#’)printf(“%c”,c); else{ rev(); printf(“%c”,c); } } main() { rev(); } [39]A) AB#CD B) #ABCD C) #CD D) #BA 35、下面函数与[D]是等价的。 float s(float x,float delta) { float y,z=0.0; for(y=1.0;y>delta;y/=x) z+=y; return z; } [40]A) float s(float x,float delta) B) float s(folat x,float delta) { float y; { float z=0.0,y=1.0; for( y=1.0;y>delta;y/=x) do{ y/=x;z+=y;} while(y>delta); return s(x,delata)+y;} return z;} C) float s(flat x,float delta) D) float s(float x,float delta) { float z=0.0,y=1.0; { float z=0.0,y=1.0; while(y<=delta) for(;y>delta;) { z+=y; y/=x; } { z+=y; y/=x; } return z; } return z; }
c语言期中考试试题及答案

《C语言程序设计》期中考试试卷课程编号:03402513试卷类型: A卷考试形式:笔试考试日期:注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。
4.草稿纸用试卷的背面。
一、单项选择题(1空1分,共20分)1、C语言程序的基本结构是(【1】) 。
【1】 A) 函数 B) 语句 C) 字符 D) 程序行2、一个C程序的执行是(【2】) 。
【2】A) 从本程序的主函数开始,到本程序的主函数结束B)从本程序的第一个函数开始,到本程序的最后一个函数结束C) 从本程序的主函数开始,到本程序的最后一个函数结束D)从本程序的第一个函数开始,到本程序的主函数结束3、下列四个叙述中,错误的是(【3】) 。
【3】 A) 一个C源程序必须有且只能有一个主函数B) 一个C源程序可以含一个或多个子函数C) 在C源程序中注释说明必须位于语句之后D) C源程序的基本结构是函数4、下面不属于C语言保留字的是(【4】) 。
【4】 A) short B) ELSE C) extern D) for5、下列四个叙述中,正确的是(【5】) 。
【5】 A) 库函数也是C语言本身的组成部分B) C语言中的输入输出操作是由相应语句完成的C) 库函数是C编译系统提供的功能函数D) 标题文件(头文件)可以在程序的函数内部调用6、下列四组数据类型中,C语言允许的一组是(【6】)。
【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型C) 整型、双精度型、布尔型 D) 整型、实型、复型7、在C语言中不同数据类型的的长度是(【7】)。
【7】 A) 固定的 B) 由用户自己定义的C) 任意的 D) 与机器字长有关8、下列四组(八进制或十六进制)常数中,正确的一组是(【8】)。
【8】 A) 016 0xbf 18 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0A12 7FF -1239、下列四组转义字符中,合法的一组是(【9】)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》期中考试试卷淮海工学院10 – 11 学年第 2 学期 C语言程序设计期中考试试卷题号一二三四五总分得分单项选择题答题表1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20题答题表中)1.以下叙述中正确的是()。
A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C 语句必须以分号结束D)C语句必须在一行内写完在2.一个C程序是由____________。
A)一个主程序和若干个子程序构成B)一个或多个函数构成C)若干过程组成D)若干子程序组成3.以下选项中正确的定义语句是____________。
A)d ouble a; b;B)d ouble a=b=7;C)d ouble a=7, b=7;D)d ouble, a, b;4.计算机能直接执行的程序是()。
A)C源程序B)目标程序C)汇编程序D)可执行程序5.下列符号可以作为变量名的是____________。
A)+aB)*pC)_DAY1D)n ext day6.设c是字符变量,则以下表达式正确的是____________。
A)c=666B)c='c'C)c="c"D)c="abcd"7.以下说法正确的是____________。
A)输入项可以为一个实型常量,如scanf("%f", 3.5)B)只有格式控制没有输入项也能进行正确输入,如scanf("%d")C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f", &f)D)当输入数据时,必须指定变量的地址,如scanf("%f", &f)8.若a, b, c均定义为整型,要给它们输入数据,正确的输入语句是____________。
A)r ead(a, b, c);B)s canf("%d%d%d", a, b, c);C)s canf("%D%D%D", a, b, c);D)s canf(%d%d%d", &a, &b, &c);9.若有if (w) –x; else ++y; 则其中与w 等价的表达式是____________。
A)w == lB)w == 0C)w != lD)w != 010.为了避免嵌套的if-else语句的二义性,C语言规定else总是与____________组成配对关系。
A)缩排位置相同的ifB)在其之前未配对的if2C)在其之前最近的未配对的ifD)同一行上的if11.选择出合法的if语句(设int x, a, b, c;)____________。
A)i f(a == b) x++;B)i f (a =< b) x++;C)i f(a <> b) x++;D)i f (a=>b) x++;12.若变量已正确定义为int 型,要通过语句scanf("%d, %d, %d", &a, &b, &c);给a 赋值1、给b 赋值2、给c 赋值3,以下输入形式中错误的是(凵代表一个空格符)()。
A)凵凵凵1,2,3<回车>B)1凵2凵3<回车>C)1, 凵凵凵2, 凵凵凵3<回车>D)1,2,3<回车>13.C语言中while和do-while循环的主要区别是____________。
A)d o-while的循环体至少无条件执行一次B)w hile的循环控制条件比do-while的循环控制条件严格C)d o-while允许从外部转到循环体内D)d o-while的循环体不能是复合语句14.以下关于数组的描述正确的是____________。
A)数组的大小是固定的,但可以有不同类型的数组元素B)数组的大小是可变的,但所有数组元素的类型必须相同C)数组的大小是固定的,所有数组元素的类型必须相同D)数组的大小是可变的,可以有不同类型3的数组元素15.以下关于字符数组的描述中错误的是____________A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入和输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较16.若有定义语句:char s[10]="123\n\0\45670";,则strlen(s)的值是__________。
A)9B)7C)3D)417.在C语言程序中,下列叙述正确的是____________。
A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和调用都可以嵌套D)函数的定义和调用均不可以嵌套18.以下叙述中错误的是________。
A)用户定义的函数中可以没有return 语句B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有return 语句,则应当定义函数为void 类型D)函数的return 语句中可以没有表达式19.在声明一个结构体类型时系统分配给4它的存储空间是____________。
A)该结构体变量中第一个成员所需存储空间B)该结构体变量中最后一个成员所需存储空间C)该结构体变量中所有成员所需存储空间的总和D)结构体类型本身并不占用存储空间,即系统并不给结构体类型分配存储空间20.已知函数调用f(1, 'k' + 5, g(1,2,3)),则函数f定义中的形参个数为_________个。
A) 2B)3C) 4D) 5二、填空题(共15空,每空1分,共15分)1.C编译器的功能是___*.c --*.obj_________。
2.表达式9 / 5 + 4的值是____5________。
表达式3 * (4 + 5)的值是___27_________。
3.判断整型变量n是否是偶数的逻辑表达式是_n%2==0__________。
4.程序的三种基本控制结构分别是_顺序__、_分支__和_循环_。
5.C语言中的循环控制语句有while、do…while和___for_______语句三种。
6.计算数组的存储空间可以使用sizeof运算符,计算数组a的存储空间的表达式是__sizeof(a)__________。
计算数组a的元素个数的表达式是____sizeof(a)/sizeof(a[0])___。
7.在函数中可以利用__return_语句返回函数计算结果58.若有定义int a[] = {1,2,3,4,5,6},则数组a 的大小为____6___,引用数组a的最后一个元素的表达式是__a[5]_________。
9.C语言使用关键字__break___定义立即结束本次循环体的执行。
10.读取一行文本的字符串处理函数是_gets()/scanf("%s", )_。
三、程序分析题(共5题,每题5分,共25分)1.写出以下程序的运行结果(假定程序已包含正确的头文件)。
#include <stdio.h>main(){int x=1,y=0;if(!x)y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}y=02.写出以下程序的运行结果(假定程序已包含正确的头文件)。
main() {int n = 1, fact = 1;while (n <= 5) {fact = fact * n;++n;}printf("%d\n", fact);}5X4X3X2X1=1203.写出以下程序的运行结果(假定程序已包含正确的头文件)。
main() {int a[10] = {1, 2, 3, 4, 5};printf("%d\n", a[4] + a[9]);}5+0=54.写出以下程序的运行结果(假定程序已包含正确的头文件)。
#include <stdio.h>6int fun(){static int x=1;x*=2;return x;}main(){int i,s=1;for(i=1;i<=3;i++) s*=fun();printf("%d\n",s);}645.写出以下程序的运行结果(假定程序已包含正确的头文件)。
int fun(int n) {int m;m = 4 * n;return m;}main() {int k = 50, s;s = fun(k);printf("%d\n", s);}200四、程序填空题(共10空,每空2分,共20分)1.下面的程序计算整数n的因子的和,请填空。
#include <stdio.h>void main() {int i, n, sum;printf("n = ");scanf("%d", _&n___); /* 读取整数n */sum = __0___________;for(i = 1; i <= n; ++i)if ( n % i == 0)_sum +=i__________________;printf("sum = %d\n, __sum____);}2.下面的程序中定义的函数fun计算数组元素的最大值,请填空int fun(int b[10]) {7int max, i;max = __b[0]_; /* b[0] ~b[9] 都可以的*/for (i = 1; i < 10; __i++___)if (__b[i]>max__) max = b[i]; /* max <b[I] */return __max___;}void main() {int m, a[10] = {56, 32, 78, 99, 12, 43, 31, 67, 90, 17};m = fun(a); /* 调用函数fun */printf("Max = %d\n", m);}五、程序设计题(共2小题,共20分)1.编写一个程序,输入一个整数n,输出大于n的最小的素数。
例如输入12,程序应输出13;若输入24,程序应输出29。
(本题8分)#include <stdio.h>#Include <math.h>int isPrime(int n);int main(void){int n;int i;printf("Input n: ");scanf("%d", &n);for(i=n+1; ;i++)if(isPrime(i)){8printf("%d\n", i)break;;}return 0;}int isPrime(int n){int i;for(i=2; I<sqrt(n); i++)if (n%i==0)return 0;return 1;}2.编写一个名为min的函数计算三个整数a,b和c的最小值;然后编写main函数调用该函数计算大小为5的一维数组的最小值并输出。