上海海事大学C语言程序设计练习题全(题库)_上海海事大学题库
上海海事大学C语言程序设计练习题全(题库)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“上海海事大学题库”。
试卷编号:9049 所属语言:Turbo C 试卷方案:09(2)模拟试卷总分:100分 共有题型:5种
一、填空 共15题(共计15分)第1题(1.0分)
C语言表达式!(3
int a=1,b=2,c=3;执行语句a=b=c;后a的值是【1】.答案: 1).3 第3题(1.0分)
以下程序的输出结果为【1】, #include “stdio.h” main(){int a=010,j=10;printf(“%d,%dn”,++a,j--);} 答案: 1).9,10 第4题(1.0分)
执行下列语句的结果是【1】,a=3;printf(“%d,”,++a);printf(“%d”,a++);答案: 1).4,4 第5题(1.0分)
当a=1,b=2,c=3时,执行以下程序段后b=【1】.if(a>c)b=a;a=c;c=b;答案: 1).2 第6题(1.0分)
假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是【1】.答案: 1).6 第7题(1.0分)
执行下列语句后,b 的十进制值是【1】.int x=240,y=15,b;char z='A';b=((x && y)&&(z
当a=3,b=2,c=1;时,执行以下程序段后 a=【1】.if(a>b)a=b;if(b>c)b=c;else c=b;c=a;
答案: 1).2 第9题(1.0分)
以下程序的输出结果为【1】, #include “stdio.h” main(){int a;for(a=0;a
程序段int k=10;while(k=0)k=k-1循环体语句执行【1】次.答案: 1).0 第11题(1.0分)
以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则括号内应填写【1】.ch=getchar();while(ch ____ 'Y')/*在括号中填写*/ ch=getchar();答案: 1).== 第12题(1.0分)
以下do-while语句中循环体的执行次数是【1】.a=10;b=0;do { b+=2;a-=2+b;} while(a>=0);答案: 1).3 第13题(1.0分)
C语言中,数组元素的下标下限为【1】.答案: 1).0 第14题(1.0分)
如果函数不要求带回值,可用【1】来定义函数返回值为空.答案: 1).void 第15题(1.0分)
C语言源程序的基本单位是【1】.答案: 1).函数
二、判断 共15题(共计15分)第1题(1.0分)
a=(b=4)+(c=6)是一个合法的赋值表达式.答案:Y 第2题(1.0分)
在C语言中,变量必需先定义后使用 答案:Y 第3题(1.0分)
语句 printf(“%f%%”,1.0/3);输出为 0.333333.答案:N 第4题(1.0分)
语句scanf(“%7.2f”,&a);是一个合法的scanf函数.答案:N 第5题(1.0分)
在switch-case语句中,必须使用default语句.答案:N 第6题(1.0分)
关系运算符(大于、小于)的优先级高于(低于加减乘除)算术运算符并且低于(高于)赋值运算符.答案:N 第7题(1.0分)
C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N 第8题(1.0分)
do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N 第 9题(1.0分)在定义二维数组时,可以将该数组的两个维数全部省略答案:N 第10题(1.0分)
任何数组的下标都是从0开始;答案:Y 第11题(1.0分)
C语言中只能逐个引用数组元素而不能一次引用整个数组.答案:Y 第12题(1.0分)
数组中的元素类型不能不同答案:Y 第13题(1.0分)
通过return语句,函数可以带回一个或一个以上的返回值.答案:N 第14题(1.0分)
如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准.答案:Y 第15题(1.0分)
C程序中有调用关系的所有函数必须放在同一个源程序文件中.答案:N
三、单项选择 共20题(共计40分)第1题(2.0分)下列程序的输出结果是().main(){ printf(“%dn”,null);} A:0 B:变量无定义 C:-1 D:1 答案:B 第2题(2.0分)
用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是().long a=0xffffff;int b;char c;A:0ffffff 和0x61 B:-1和98 C:-1和97 D:指向同一地址 答案:C 第3题(2.0分)
已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用 八进制表示的字符常量'101'是().A:字符A B:字符a C:字符e D:非法的常量 答案:A 第4题(2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97), 则以下程序段的执行结果是().进制整数)
A:因变量类型与格式描述符的类型不匹配,输出无定值 B:输出项与格式描述符个数不符,输出为零值或不定值 C:61,141,k=%12 D:61,141,k=%d 答案:C 第5题(2.0分)
若a是float型变量,b是unsigned型变量,以下输入语句中合法的是().A:scanf(“%6.2f%d”,&a,&b);B:scanf(“%f%n”,&a,&b);C:scanf(“%f%3o”,&a,&b);D:scanf(“%f%f”,&a,&b);答案:C 第6题(2.0分)以下程序的输出结果为().main(){int i=010,j=10;printf(“%d,%dn”,++i,j--);} A:11,10 B:9,10 C:010,9 D:10,9 答案:B 第7题(2.0分)int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为().A:1 B:2 C:3 D:不一定 答案:B 第8题(2.0分)
下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是().A:8 B:23 C:17 D:6 答案:B 第9题(2.0分)
以下运算符中,优先级最高的运算符是().A:?:
ch='a';k=12;printf(“%x,%o,”,ch,ch);printf(“k=%%%dn”,k);(x十六进制整数,o八B:++ C:&& D:, 答案:B 第10题(2.0分)
设j和k都是int类型,则for循环语句
for(j=0,k=0;j
D:循环体一次也不执行 答案:A 第11题(2.0分)
下面有关 for 循环的正确描述是().A:for 循环只能用于循环次数已经确定的情况 B:for 循环是先执行循环循环体语句,后判断表达式 C:在 for 循环中,不能用 break 语句跳出循环体
D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 答案:D 第12题(2.0分)以下程序的运行结果是().main(){ int n;for(n=1;n1;i--)for(j=1;j
设j和k都是int类型,则for循环语句().for(j=0,k=0;j
D:循环体一次也不执行 答案:A 第15题(2.0分)
在C语言中,为了结束由while语句构成的循环,while后一对圆括号 中表达式的值应该为().A:0 B:1 C:True D:非0 答案:A 第16题(2.0分)
以下对一维整型数组a的正确说明是().A:int a(10);B:int n=10,a[n];C:int n;scanf(“%d”,&n);int a[n];D:#define SIZE 10(换行)int a[SIZE];答案:D 第17题(2.0分)
在C语言中,引用数组元素时,其数组下标的数据类型允许是().A:整型常量 B:整型表达式
C:整型常量或整型表达式 D:任何类型的表达式 答案:C 第18题(2.0分)
以下不能正确定义二维数组的选项是().A:int a[2][2]={{1},{2}};B:int a[][2]={1,2,3,4};C:int a[2][2]={{1},2,3};D:int a[2][]={{1,2},{3,4}};答案:D 第19题(2.0分)
若有说明: int a[3][4]={0};则下面正确的叙述是().A:只有元素a[0][0]可得到初值0 B:此说明语句不正确
C:数组a中各元素都可得到初值,但其值不一定为0 D:数组a中每个元素均可得到初值0 答案:D 第20题(2.0分)以下数组定义中不正确的是().A:int a[2][3];B:int b[][3]={0,1,2,3};C:int c[100][100]={0};D:int d[3][]={{1,2},{1,2,3},{1,2,3,4}};答案:D
四、程序填空 共2题(共计12分)第1题(6.0分)
/*------------------------【程序填空】
--------------------------
题目:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于
零的整数个数,用变量j统计小于零的整数个数。------------------------*/ #include main(){int k,n,i,j;printf(“Enter INT number,with 0 to endn”);i=j=0;scanf(“%d”,&n);while(n!=0)/***********SPACE***********/ {if(n>0)i=【?】;/***********SPACE***********/ if(n
/*------------------------【程序填空】
--------------------------
题目:以下程序是用选择法对10个整数按升序排序,程序中有4个空,填空使程序完整。------------------------*/
/***********SPACE***********/ 【?】 main(){ int i,j,k,t,a[N];for(i=0;i
/***********SPACE***********/ for(j=i+1;【?】;j++)if(a[j]
答案:
1).#define N 10 2).k=i;3).jj 或 j=j 4).k!= i
五、程序设计 共3题(共计18分)第1题(6.0分)
/*-----------------【程序设计】
-------------------
题目:编写函数fun求1!+2!+3!+ „„ +n!的和,在 main函数中由键盘输入n值,并输出运算结果。请
编写fun函数。
例如:若n值为20,则结果为268040729。
-------------------注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-----------------*/
#include float fun(int n){
/**********Program**********/
/********** End **********/ } main(){ int i,n;long int result;scanf(“%d”,&n);result=fun(n);printf(“%ldn”,result);yzj();} yzj(){ FILE *IN,*OUT;int i;int iIN;long int iOUT;IN=fopen(“1.in”,“r”);if(IN==NULL){printf(“Please Verify The Currernt Dir..It May Be Changed”);} OUT=fopen(“1.out”,“w”);if(OUT==NULL){printf(“Please Verify The Current Dir..It May Be Changed”);} for(i=0;i
答案:----------------------int i;float f=1,s=0;for(i=1;i
第2题(6.0分)
/*-----------------【程序设计】
-------------------
题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:
y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)例如:若m=9,则应输出:1.168229-------------------注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
-----------------*/ #include “stdio.h”
double fun(int m){ /**********Program**********/
/********** End **********/ } main(){int n;clrscr();printf(“Enter n: ”);scanf(“%d”, &n);printf(“nThe result is %1fn”, fun(n));getch();yzj();} yzj(){ FILE *IN,*OUT;int s,i;int t;float o;IN=fopen(“in.dat”,“r”);if(IN==NULL){printf(“Read File Error”);} OUT=fopen(“out.dat”,“w”);if(OUT==NULL){printf(“Write File Error”);} for(i=0;i
第3题(6.0分)
/*-----------------【程序设计】
-------------------题目:编写函数fun,函数的功能是:求给定正整数m以
内的素数之和。例如:当m=20时,函数值为77。-------------------注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。
-----------------*/ #include “stdio.h”
int fun(int m){ /**********Program**********/
/********** End **********/ } main(){ int y;y=fun(20);printf(“y=%dn”,y);yzj();} yzj(){ FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen(“20.in”,“r”);if(IN==NULL){printf(“Please Verify The Currernt Dir..It May Be Changed”);} OUT=fopen(“20.out”,“w”);if(OUT==NULL){printf(“Please Verify The Current Dir..It May Be Changed”);} for(i=0;i
答案:----------------------int i,k,s=0;for(i=2;i
试卷总分:100分 共有题型:6种
一、填空 共15题(共计15分)第1题(1.0分)
若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组中下标最大的元素的值是【1】.答案:3 第2题(1.0分)
表达式18 && 53 的值是【1】.答案:1 第3题(1.0分)
c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:循环 第4题(1.0分)
预处理命令行都必须以【1】号开始.答案:# 第5题(1.0分)
设i,j,k均为int型变量,则执行完for循环
for(i=0,j=10;i
程序段int k=10;while(k=0)k=k-1循环体语句执行【1】次.答案:0 第7题(1.0分)
执行下列语句后,*(p+1)的值是【1】.char s[3]=“ab”,*p;p=s;答案:b 第8题(1.0分)
若输入字符串:abcde,则以下while循环体将执行 【1】 次.While((ch=getchar())=='e')printf(“*”);答案:0 第9题(1.0分)
如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:void 第10题(1.0分)
C语言中,数组元素的下标下限为【1】.答案:0 第11题(1.0分)
int a=1,b=2,c=3;执行语句a=b=c;后a的值是【1】.答案:3 第12题(1.0分)
若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组可用的最小下标值是【1】.答案:0 第13题(1.0分)
将数组a的首地址赋给指针变量p的语句是【1】.答案:p=a;第14题(1.0分)
以下程序的输出结果为【1】, #include “stdio.h” main(){int a=010,j=10;printf(“%d,%dn”,++a,j--);} 答案:9,10 第15题(1.0分)
假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是【1】.答案:6
二、判断 共15题(共计15分)第1题(1.0分)
do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N 第2题(1.0分)
关系运算符的优先级高于算术运算符并且低于赋值运算符.答案:N 第3题(1.0分)C程序中的关键字必须小写.答案:Y
第4题(1.0分)若有说明int c;则while(c=getchar());是正确的C语句.答案:Y 第5题(1.0分)数组中的元素类型不能不同 答案:Y
第6题(1.0分)a=(b=4)+(c=6)是一个合法的赋值表达式.答案:Y
第7题(1.0分)int a[3][4]={{1},{5},{9}};它的作用是将数组各行第一列 的元素赋初值,其余元素值为0.答案:Y
第8题(1.0分)若 a=3,b=2,c=1 则关系表达式“(a>b)==c” 的值为“真”.答案:Y 第9题(1.0分)int i,*p=&i;是正确的C说明语句.答案:Y 第10题(1.0分)语句“int *pi,pj”定义了两个指针变量答案:N
第11题(1.0分)如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准.答案:Y 第12题(1.0分)
C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N
第13题(1.0分)在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y
第14题(1.0分)
语句 printf(“%f%%”,1.0/3);输出为 0.333333.答案:N 第15题(1.0分)
若i =3,则printf(“%d”,-i++);输出的值为-4.答案:N
三、单项选择 共17题(共计34分)第1题(2.0分)下列程序段的输出结果为().float x=213.82631;printf(“%3d”,(int)x);A:213.82 B:213.83 C:213 D:3.8 答案:C 第2题(2.0分)下列定义不正确的是().A:#define PI 3.141592 B:#define S345 C:int max(x,y);int x,y;{ } D:static char c;答案:C 第3题(2.0分)以下程序段的输出结果为().char c[]=“abc”;int i=0;do while(c[i++]!=' ');printf(“%d”,i-1);A:abc B:ab C:2 D:3 答案:D
第4题(2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97), 则以下程序段的执行结果是().ch='a';k=12;printf(“%x,%o,”,ch,ch);printf(“k=%%%dn”,k);A:因变量类型与格式描述符的类型不匹配,输出无定值 B:输出项与格式描述符个数不符,输出为零值或不定值 C:61,141,k=%12 D:61,141,k=%d 答案:C
第5题(2.0分)对 for(表达式1;;表达式3)可理解为().A:for(表达式1;0;表达式3)B:for(表达式1;1;表达式3)C:for(表达式1;表达式1;表达式3)D:for(表达式1;表达式3;表达式3)答案:B 第6题(2.0分)以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j
第8题(2.0分)设a=12,且a定义为整型变量.执行语句a+=a-=a*=a;后a的值为().A:12 B:144 C:0 D:132 答案:C
第9题(2.0分)执行语句 for(i=1;i++
第10题(2.0分)若有char a[80],*s=a;正确的输入语句是().(s输入字符串)A:scanf(“%s”,s);B:gets(*s);C:scanf(“%c”,s);D:getchar(s,80);答案:A 第11题(2.0分)以下函数调用语句中实参的个数是().func((e1,e2),(e3,e4,e5));A:2 B:3 C:5 D:语法错误 答案:A 第12题(2.0分)下列运算符中优先级最高的是().A:
给数组a的所有元素分别赋值为1、2、3、„„的语句是().A:for(i=1;i
第15题(2.0分)在C语言中,要求运算数必须是整型的运算符是().A:^ B:% C:!D:> 答案:B
第16题(2.0分)下列运算符中是C语言关系运算符的是().A:~ B:!C:& D:!= 答案:D
第17题(2.0分)若有说明:int a[][3]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是().A:2 B:3 C:4 D:无确定值 答案:B
四、程序填空 共2题(共计12分)第1题(6.0分)/*------------------------【程序填空】
--------------------------题目:以下程序的功能如(图1)。
------------------------*/ #include #include /***********SPACE***********/ double f(【?】){ /***********SPACE***********/ 【?】;/***********SPACE***********/ if(【?】)y=2.0*x*x+3.0*x+4.0;else y=-2.0*x*x+3.0*x-4.0;/***********SPACE***********/ 【?】;}
main(){ clrscr();printf(“%fn”, f(f(-1.0)+f(5.0)));} 答案: =======(答案1)======= float x =========或========= double x =======(答案2)======= double y =======(答案3)======= x=x =======(答案4)======= return y =========或========= return(y)第2题(6.0分)
/*------------------------【程序填空】
--------------------------题目:已定义一个含有30个元素的数组s,函数fun1的功能是按
顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序
每五个元素求一个平均值, 并将该值存放在数组w中。
程序中有4个空,填空使程序完整。
------------------------*/ float s[30],w[6];fun1(float s[]){ int k,i;for(k=2,i=0;i
for(i=0;i
=======(答案1)======= s[i]=k;=========或========= s[i]=(i+1)*2 =======(答案2)======= if((i + 1)%5 == 0)=========或========= if((i + 1)/5*5 ==i+1)=======(答案3)======= sum=0;=========或========= sum=0.0;=======(答案4)======= fun2(s,w);
五、程序改错 共1题(共计6分)第1题(6.0分)
/*-----------------------【程序改错】
-------------------------题目:函数fun的功能是:输出Fabonacci数列的前20项,要求变
量类型定义成浮点型,输出时只输出整数部分,输出项
数不得多于或少于20。请改正程序中的4个错误,使它能得出正确的结果。-------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。-----------------------*/ fun(){ int i;float f1=1,f2=1,f3;/**********FOUND**********/ printf(“%8d”,f1);/**********FOUND**********/ for(i=1;i
=======(答案1)======= printf(“%8.0f”,f1);=========或========= printf(“%f”,f1);=========或========= printf(“%8f”,f1);=======(答案2)======= for(i=1;ii;i++)=========或========= for(i=2;i=i;i++)=========或========= for(i=1;i=i;i++)=======(答案3)======= f1=f2;=======(答案4)======= f2=f3;
六、程序设计 共3题(共计18分)第1题(6.0分)
/*-----------------【程序设计】
-------------------题目:编写函数求1~100中奇数的平方和。
结果为166650。
-------------------注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。
-----------------*/ #include “stdio.h” float sum(int n){ /**********Program**********/ /********** End **********/ } main(){ printf(“sum=%fn”,sum(100));yzj();getch();} yzj(){ FILE *IN,*OUT;int n;int i;float o;IN=fopen(“in.dat”,“r”);if(IN==NULL){printf(“Read File Error”);} OUT=fopen(“out.dat”,“w”);if(OUT==NULL){printf(“Write File Error”);} fscanf(IN,“%d”,&i);o=sum(i);fprintf(OUT,“%fn”,o);fclose(IN);fclose(OUT);} 答案:----------------------float s=0;int i,j;for(i=1;i
/*-----------------【程序设计】
-------------------题目:编写函数fun,函数的功能是:找出一批 正整数中的最大的偶数。
-------------------注意:部分源程序给出如下。请勿改动主函数 main和其函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。
-----------------*/ #include “stdio.h” int fun(int a[],int n){ /**********Program**********/
/********** End **********/ } main(){ int a[]={1,2,9,24,35,18},k;k=fun(a,6);printf(“max=%dn”,k);yzj();getch();} yzj(){ FILE *IN,*OUT;int iIN[10],iOUT,i,j;IN=fopen(“in.dat”,“r”);if(IN==NULL){printf(“Please Verify The Currernt Dir..It May Be Changed”);} OUT=fopen(“out.dat”,“w”);if(OUT==NULL){printf(“Please Verify The Current Dir..It May Be Changed”);} for(j=0;jamax)amax=a[i];return amax;----------------------第3题(6.0分)
/*-----------------【程序设计】
-------------------题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:
y=1+1/3+1/5+1/7+...+1/(2m+1)例如:若m=9,则应输出:2.133256-------------------注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。
-----------------*/ #include “stdio.h”
double fun(int m){ /**********Program**********/
/********** End **********/ } main(){int n;clrscr();printf(“Enter n: ”);scanf(“%d”, &n);printf(“nThe result is %1fn”, fun(n));yzj();getch();} yzj(){ FILE *IN,*OUT;int s,i;int t;float o;IN=fopen(“in.dat”,“r”);if(IN==NULL){printf(“Read File Error”);} OUT=fopen(“out.dat”,“w”);if(OUT==NULL){printf(“Write File Error”);} for(i=0;i
一、填空 共15题(共计15分)第1题(1.0分)题号:528 设a、b、c为整型数, 且a=
2、b=
3、c=4, 则执行完以下语句:
a*=16+(b++)-(++c);
后,a的值是 【1】.答案:
=======(答案1)======= 28
第2题(1.0分)题号:77 已知 i=5;写出语句 a=--i;执行后整型变量 a 的值是【1】.答案:
=======(答案1)======= 4
第3题(1.0分)题号:433 已知x=3,y=2,则表达式x*=y+8的值为【1】.答案:
=======(答案1)======= 30
第4题(1.0分)题号:437 以下程序的输出结果为【1】,#include “stdio.h” main(){int a=010,j=10;printf(“%d,%dn”,++a,j--);} 答案:
=======(答案1)======= 9,10
第5题(1.0分)题号:436 下列程序的输出是【1】,main(){int a=011;printf(“%dn”,++a);} 答案:
=======(答案1)======= 10
第6题(1.0分)题号:293 getchar()函数只能接收一个【1】.答案:
=======(答案1)======= 字符
第7题(1.0分)题号:98 已知a=13,b=6,!a的十进制数值为【1】.答案:
=======(答案1)======= 0
第8题(1.0分)题号:255 表达式18 && 53 的值是【1】.答案:
=======(答案1)======= 1
第9题(1.0分)题号:86 写出表达式 1.234&&5.982 的值是【1】.答案:
=======(答案1)======= 1
第10题(1.0分)题号:438 以下程序的输出结果为【1】,#include “stdio.h” main(){int a;for(a=0;a
=======(答案1)======= 10
第11题(1.0分)题号:594 若所用变量都已正确定义,请填写以下程序段的输出结果【1】.for(i=1;i
printf(“OKn”);答案:
=======(答案1)======= OK
第12题(1.0分)题号:532 以下do-while语句中循环体的执行次数是【1】.a=10;
b=0;
do { b+=2;a-=2+b;} while(a>=0);
答案:
=======(答案1)======= 3
第13题(1.0分)题号:340 C语言中,二维数组在内存中的存放方式为按【1】优先存放.答案:
=======(答案1)======= 行
第14题(1.0分)题号:331 C程序在执行过程中,不检查数组下标是否【1】.答案:
=======(答案1)======= 越界
第15题(1.0分)题号:332 若有以下数组a,数组元素:a[0]~a[9],其值为 4 12 8 2 10 7 5 1 3
该数组可用的最小下标值是【1】.答案:
=======(答案1)======= 0
二、判断 共15题(共计15分)第1题(1.0分)题号:933 在C语言中,变量必需先定义后使用
答案:Y
第2题(1.0分)题号:717 x*=y+8 等价于 x=x*(y+8).答案:Y
第3题(1.0分)题号:878 若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28.答案:N
第4题(1.0分)题号:943 使用putchar函数时,必须在之前包含头文件stdio.h 答案:Y
第5题(1.0分)题号:720 语句 printf(“%f%%”,1.0/3);输出为 0.333333.答案:N
第6题(1.0分)题号:716 若i =3,则printf(“%d”,-i++);输出的值为-4.答案:N
第7题(1.0分)题号:930 关于if语句中,条件表达式只能是关系表达式或逻辑表达式
答案:N
第8题(1.0分)题号:956 在switch-case语句中,必须使用default语句.答案:N
第9题(1.0分)题号:951 在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y
第10题(1.0分)题号:952 do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N
第11题(1.0分)题号:953 C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N
第12题(1.0分)题号:954 continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y
第13题(1.0分)题号:736 int a[3][4]={{1},{5},{9}};它的作用是将数组各行第一列 的元素赋初值,其余元素值为0.答案:Y
第14题(1.0分)题号:926 任何数组的下标都是从0开始;答案:Y
第15题(1.0分)题号:735 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};答案:N
三、单项选择 共20题(共计40分)第1题(2.0分)题号:2219 设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为().A:float B:char C:int D:double
答案:D
第2题(2.0分)题号:2005 以下不正确的叙述是().A:在C程序中所用的变量必须先定义后使用 B:程序中,APH和aph是两个不同的变量
C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变 D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
答案:D
第3题(2.0分)题号:2194 C语言表达式a=15,a%6的值是 A:15 B:3 C:2 D:非法表达式
答案:B
第4题(2.0分)题号:2039 若k为int型变量,则以下程序段的执行结果是().k=-8567;printf(“k=|%06D|n”);A:格式描述符不合法,输出无定值 B:输出为k=|%06D| C:输出为|0-8567| D:输出为|-8567|
答案:B
第5题(2.0分)题号:2044 下列程序的输出结果为().main(){int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(“%fn”,x);} A:27.000000 B:27.500000 C:28.000000 D:28.500000
答案:A
第6题(2.0分)题号:2042 若a是float型变量,b是unsigned型变量,以下输入语句中合法的是().A:scanf(“%6.2f%d”,&a,&b);B:scanf(“%f%n”,&a,&b);C:scanf(“%f%3o”,&a,&b);D:scanf(“%f%f”,&a,&b);
答案:C
第7题(2.0分)题号:2143 int a=1,b=2,c=3;
if(a>c)b=a;a=c;c=b;则c的值为().A:1 B:2 C:3 D:不一定
答案:B
第8题(2.0分)题号:2046 以下程序的输出结果是().main(){int i,j,k,a=3,b=2;i=(--a==b++)?--a:++b;j=a++;k=b;printf(“i=%d,j=%d,k=%dn”,i,j,k);} A:i=2,j=1,k=3 B:i=1,j=1,k=2 C:i=4,j=2,k=4 D:i=1,j=1,k=3
答案:D
第9题(2.0分)题号:2210 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于 表达式(exp)的是().A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)
答案:B
第10题(2.0分)题号:2062 假定所有变量均已正确定义,下列程序段运行后x的值是().k1=1;k2=2;k3=3;x=15;if(!k1)x--;else if(k2)x=4;else x=3;A:14 B:4 C:15 D:3
答案:B
第11题(2.0分)题号:2144 int a=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
则a的值为().A:1 B:2 C:3 D:不一定
答案:A
第12题(2.0分)题号:2248 下面有关 for 循环的正确描述是().A:for 循环只能用于循环次数已经确定的情况 B:for 循环是先执行循环循环体语句,后判断表达式 C:在 for 循环中,不能用 break 语句跳出循环体
D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案:D
第13题(2.0分)题号:2246 以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x
A:是无限循环 B:循环次数不定 C:4次 D:3次
答案:C
第14题(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
第15题(2.0分)题号:2061 在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的 表达式是().A:(!E==0)B:(E>0||E
答案:C
第16题(2.0分)题号:2123 设j和k都是int类型,则for循环语句().for(j=0,k=0;j
D:循环体一次也不执行
答案:A
第17题(2.0分)题号:2273 设有数组定义: char array [ ]=“China”;则数组 array所占的 空间为().A:4个字节 B:5个字节 C:6个字节 D:7个字节
答案:C
第18题(2.0分)题号:2275 以下对二维数组a的正确说明是().A:int a[3][] B:float a(3,4)C:double a[1][4] D:float a(3)(4)
答案:C
第19题(2.0分)题号:2282 以下能对二维数组a进行正确初始化的语句是().A:int a[2][]={{1,0,1},{5,2,3}};B:int a[][3]={{1,2,3},{4,5,6}};C:int a[2][4]={{1,2,3},{4,5},{6}};D:int a[][3]={{1,0,1}{},{1,1}};
答案:B
第20题(2.0分)题号:2152 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是().A:gets(a);B:scanf(“%s”,a);C:for(i=0;i
答案:D
四、程序填空 共4题(共计24分)第1题(6.0分)题号:11 /*------------------------【程序填空】
--------------------------
题目:以下程序的功能是求100-999之间的水仙花数(水仙花数 是指一个三位数的各位数字的立方和是这个数本身,如:153=1^3+5^3+3^3)。
------------------------*/
int fun(int n){ int i,j,k,m;m=n;/***********SPACE***********/ 【?】
for(i=1;i
=======(答案1)======= k=0;
=======(答案2)======= j=m%10;=========或========= j=m-m/10*10 =========或========= j=m-10*(m/10)
=======(答案3)======= return(1);
=======(答案4)======= fun(i)
第2题(6.0分)题号:429 /*------------------------【程序填空】
--------------------------
题目:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于
零的整数个数,用变量j统计小于零的整数个数。------------------------*/ #include main(){int k,n,i,j;printf(“Enter INT number,with 0 to endn”);i=j=0;scanf(“%d”,&n);while(n!=0)/***********SPACE***********/ {if(n>0)i=【?】;/***********SPACE***********/ if(n
=======(答案1)======= i + 1
=======(答案2)======= j + 1
=======(答案3)======= &n
第3题(6.0分)题号:423 /*------------------------【程序填空】
--------------------------
题目:考查字符串数组的应用。输出26个英文字母。
------------------------*/ #include void main(void){ char string[256];int i;/***********SPACE***********/ for(i = 0;i
=======(答案1)======= i++ =========或========= ++i =========或========= i=i+1 =========或========= i+=1
=======(答案2)======= 'A' + i =========或========= i+'A' =========或========= 65 + i =========或========= i+65
=======(答案3)======= string
第4题(6.0分)题号:4 /*------------------------【程序填空】
--------------------------
题目:下面的程序是求1!+3!+5!+„„+n!的和,程序中有4个 空,填空使程序完整。
------------------------*/ main(){ long int f,s;int i,j,n;/***********SPACE***********/ 【?】
scanf(“%d”,&n);/***********SPACE***********/ for(i=1;i
=======(答案1)======= s=0;
=======(答案2)======= i+=2 =========或========= i=i+2 =========或========= i++,i++
=======(答案3)======= j=j =========或========= jj
=======(答案4)======= f= f * j;=========或========= f*=j;
五、程序设计 共1题(共计6分)第1题(6.0分)题号:325 /*-----------------【程序设计】
-------------------
题目:编写函数fun其功能是:能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。(n是偶数)-------------------注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
-----------------*/ #include “stdio.h”
int fun(int n){ /**********Program**********/
/********** End **********/ }
main(){int m;
printf(“Enter m: ”);scanf(“%d”, &m);printf(“nThe result is %dn”, fun(m));yzj();getch();
} yzj(){
FILE *IN,*OUT;int t;int o;int c;IN=fopen(“in.dat”,“r”);if(IN==NULL){printf(“Read File Error”);} OUT=fopen(“out.dat”,“w”);if(OUT==NULL){printf(“Write File Error”);} for(c=1;c
答案:----------------------int sum,i;sum =0;for(i=2;i
试卷编号:9689 所属语言:C语言 试卷方案:期中考试 试卷总分:100分 共有题型:5种
一、填空 共15题(共计15分)第1题(1.0分)题号:92 C语言中的字符变量用保留字【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分)题号:293 getchar()函数只能接收一个【1】.答案:
=======(答案1)======= 字符
第5题(1.0分)题号:437 以下程序的输出结果为【1】,#include “stdio.h” main(){int a=010,j=10;printf(“%d,%dn”,++a,j--);} 答案:
=======(答案1)======= 9,10
第6题(1.0分)题号:498 c语言程序的三种基本结构是:顺序结构,选择结构,【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
后,k的值为【1】.答案:
=======(答案1)======= 10
第11题(1.0分)题号:421 若输入字符串:abcde,则以下while循环体将执行 【1】 次.While((ch=getchar())=='e')printf(“*”);答案:
=======(答案1)======= 0
第12题(1.0分)题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】.for(x=0,y=0;y!=123&&x
scanf(“%d”,&y);答案:
=======(答案1)======= 3
第13题(1.0分)题号:328 C语言中,数组元素的下标下限为【1】.答案:
=======(答案1)======= 0
第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
第3题(1.0分)题号:928 C程序中的关键字必须小写.答案: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分)题号:944 C语言中,赋值表达式加上分号就构成了赋值语句.答案: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分)题号:953 C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N
第11题(1.0分)题号:742 若有说明int c;则while(c=getchar());是正确的C语句.答案:Y
第12题(1.0分)题号:954 continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y
第13题(1.0分)题号:736 int 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:b70 B:#ab C:symbol D:a_1
答案:B
第2题(2.0分)题号:2137 下列表达式中,可作为C合法表达式的是().A:[3,2,1,0] B:(3,2,1,0)C:3=2=1=0 D:3/2/1/0
答案:B
第3题(2.0分)题号:2037 若k,g均为int型变量,则下列语句的输出为().k=017;g=111;printf(“%dt”,++k);printf(“%xn”,g++);A:15 6f B:16 70 C:15 71 D:16 6f
答案:D
第4题(2.0分)题号:2043 已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为().char a='a';a--;printf(“%d,%cn”,a+'2'-'0',a+'3'-'0');A:b,c B:a--运算不合法,故有语法错 C:98,c D:格式描述和输出项不匹配,输出无定值 答案:C
第5题(2.0分)题号:2128 下列程序段的输出结果为().float x=213.82631;
printf(“%3d”,(int)x);A:213.82 B:213.83 C:213 D:3.8
答案:C
第6题(2.0分)题号:2222 语句printf(“abre'hi'yboun”);的输出结果是(说明:'b'是退格符)().A:abre'hi'ybou B:abre'hi'ybou C:re'hi'you D:abre'hi'ybou
答案:C
第7题(2.0分)题号:2028 假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值 是().A:7 B:8 C:9 D:2
答案:B
第8题(2.0分)题号:2145 int a=3,b=2,c=1;
if(a>b>c)a=b;
else a=c;
则a的值为().A:3 B:2 C:1 D: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:14 B:4 C:15 D:3
答案:B
第10题(2.0分)题号:2136 下列程序段的输出结果为().int a=7,b=9,t;
t=a*=a>b?a:b;
printf(“%d”,t);A:7 B:9 C:63 D: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
D:循环体一次也不执行
答案:A
第14题(2.0分)题号:2141 以下程序段的输出结果为().for(i=4;i>1;i--)
for(j=1;j
putchar('#');A:无 B:###### C:# D:###
郑州大学现代远程教育《C语言程序设计》课程学习指导书柳宏川 编第1章绪论(一)本章学习目标掌握结构化程序设计的思想,结构化流程图描述,算法设计基础和良好程序设计风格。(二)本......
第一章 基础知识 一.填空1.每个C程序都必须有且仅有一个________ 函数。2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载 和执行。3.软件是程......
1.Problem A: Hello world! Description Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。Input 无Output 请输出: Hello Da_min, Hello......
《C 语言程序设计》主要在计算机软件、计算机网络、计算机应用、通信技术、智能电子、电子信息工程、多媒体以及核工程与核技术等专业中开设,是电子信息类、机械类等工科专业......
分类:一、概念(13---51,54,55)、数据类型、输入输出格式、转义符、运算及表达式等:1 --- 66二、选择语句:67 --- 72 (其中67为条件运算,72可归于一类);三、循环语句:73 --- 102 (其中78为......
