篇一:上海海事大学c语言试题1
试卷编号:9682 所属语言:C语言 试卷方案:期中 试卷总分:100分 共有题型:5种
一、填空共15题 (共计15分) 第1题 (1.0分) 题号:75
已知 i=5,写出语句 a=i++; 执行后整型变量a的值是【1】. 答案:
=======(答案1)======= 5
第2题 (1.0分) 题号:510
若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】. 答案:
=======(答案1)======= 2
第3题 (1.0分) 题号:88 表达式 a+=b 相当于表达式【1】. 答案:
=======(答案1)======= a=a+b
=========或========= a=b+a
第4题 (1.0分) 题号:436 下列程序的输出是【1】,
main(){int a=011;printf("%d\n",++a);}
答案:
=======(答案1)======= 10
第5题 (1.0分) 题号:432 执行下列语句的结果是
【1】,a=3;printf("%d,",++a);printf("%d",a++); 答案:
=======(答案1)======= 4,4
第6题 (1.0分) 题号:293 getchar()函数只能接收一个【1】. 答案:
=======(答案1)======= 字符
第7题 (1.0分) 题号:445
c语言表达式!(4>=6)&&(3<=7)的值是【1】. 答案:
=======(答案1)======= 1
第8题 (1.0分) 题号:95
已知a=13,b=6, a&&b的十进制数值为【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分) 题号:311
若所用变量均已正确定义,则执行下面程序段后的 值是【1】.
for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案:
=======(答案1)======= YESYES
第11题 (1.0分) 题号:438 以下程序的输出结果为【1】,
#include "stdio.h" main(){int a;for(a=0;a<10;a++);printf("%d",a);} 答案:
=======(答案1)======= 10
第12题 (1.0分) 题号:312
以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则括号内应填写【1】.
ch=getchar();
while(ch ____ 'Y')/*在括号中填写*/
ch=getchar(); 答案:
=======(答案1)======= ==
第13题 (1.0分) 题号:333
若有以下数组a,数组元素:a[0]~a[9],其值为
9 4 12 8 2 10 7 5 1 3
该数组可用的最大下标值是【1】. 答案:
=======(答案1)======= 9
第14题 (1.0分) 题号:329
C语言中,数组名是一个不可变的【1】量,不能对它进行加减和赋值运算. 答案:
=======(答案1)======= 地址
第15题 (1.0分) 题号:341
定义int a[2][3];表示数组a中的元素个数
是【1】个. 答案:
=======(答案1)======= 6
二、判断共15题 (共计15分) 第1题 (1.0分) 题号:928 C程序中的关键字必须小写. 答案:Y
第2题 (1.0分) 题号:940 int a[9]; 则a数组的下标范围是1-9 答案:N
第3题 (1.0分) 题号:718
a=(b=4)+(c=6) 是一个合法的赋值表达式. 答案:Y
第4题 (1.0分) 题号:947
printf函数中,%c和%s都可以输出字符串. 答案:N
第5题 (1.0分) 题号:943
使用putchar函数时,必须在之前包含头文件stdio.h 答案:Y
第6题 (1.0分) 题号:721 语句scanf("%7.2f",&a);是一个合法的scanf函数. 答案:N
第7题 (1.0分) 题号:951
在执行switch语句时,default和各个case的出现次序不影响执行结果.
答案:Y
第8题 (1.0分) 题号:722 关系运算符<= 与 == 的优先级相同. 答案:N
第9题 (1.0分) 题号:930
关于if语句中,条件表达式只能是关系表达式或逻辑表达式 答案:N
第10题 (1.0分) 题号:953
C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况. 答案:N
第11题 (1.0分) 题号:952
do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式. 答案:N
第12题 (1.0分) 题号:954
continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立. 答案:Y
第13题 (1.0分) 题号:724
C语言中只能逐个引用数组元素而不能一次引用整个数组. 答案:Y
第14题 (1.0分) 题号:710 函数strlen("ASDFG\n")的值是7.
答案:N
第15题 (1.0分) 题号:926 任何数组的下标都是从0开始; 答案:Y
三、单项选择共20题 (共计40分) 第1题 (2.0分) 题号:2215
设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为(). A:int B:float C:double D:不确定答案:C
第2题 (2.0分) 题号:2029 以下不符合C语言语法的赋值语句是(). A:a=1,b=2 B:++j; C:a=b=5; D:y=(a=3,6*5);答案:A
第3题 (2.0分) 题号:2216 sizeof(float)是(). A:一个双精度型表达式 B:一个整型表达式 C:一种函数调用 D:一个不合法的表达式答案:B
第4题 (2.0分) 题号:2135 下列程序段的输出结果为().
int x=3,y=2;
printf("%d",(x-=y,x*=y+8/5)); A:1 B:7 C:3 D:5答案:C
第5题 (2.0分) 题号:2253
C语言中用于结构化程序设计的三种基本结构是().
A:顺序结构、选择结构、循环结构 B:if、switch、break C:for、while、do-while D:if、for、continue答案:A
第6题 (2.0分) 题号:2128 下列程序段的输出结果为(). float x=213.82631;
printf("%3d",(int)x); A:213.82 B:213.83 C:213 D:3.8答案:C
第7题 (2.0分) 题号:2063 执行下列语句后的输出为(). int j=-1;
if(j<=1) printf("****\n"); else printf("%%%%\n"); A:**** B:%%%% C:%%%%c
D:有错,执行不正确
答案:A
第8题 (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
第9题 (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
第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分) 题号:2210
若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于 表达式(exp)的是(). A:(exp==0) B:(exp!=0) C:(exp==1) D:(exp!=1)答案:B
第12题 (2.0分) 题号:2059 以下程序的运行结果是(). main() { int n;
for(n=1;n<=10;n++){
if(n%3==0) continue; printf("%d",n); } }
A:12457810 B:369 C:12
D:1234567890答案:A
第13题 (2.0分) 题号:2066 下列程序的输出为(). main()
{ int y=10; while(y--);
printf("y=%d\n",y); } A:y=0
B:while构成无限循环 C:y=1 D:y=-1
篇二:上海海事大学(C语言期末)上机题库 (3)
试卷编号:9050所属语言:Turbo C
试卷方案:09(2) 模拟试卷总分:100分
共有题型:5种
一、填空共15题 (共计15分)
第1题 (1.0分)
若有定义:char c='\010'; 则变量C中包含的字符个数为【1】.
答案: 1). 1
第2题 (1.0分)
写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】.
答案:1). 18
第3题 (1.0分)
C语言的三种基本结构是【1】结构、选择结构、循环结构.
答案:1). 顺序
第4题 (1.0分)
执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf("%d %c",c1,c2); 答案:1). 97 b
第5题 (1.0分)
已知a=13,b=6, a&&b的十进制数值为【1】.
答案:1). 1
第6题 (1.0分)
假设变量a,b均为整型,表达式
(a=5,b=2,a>b?a++:b++,a+b)
的值是【1】.
答案:1). 8
第7题 (1.0分)
C语言表达式!(3<6)||(4<9)的值是【1】.
答案:1). 1
第8题 (1.0分)
c语言表达式!(4>=6)&&(3<=7)的值是【1】.
答案:1). 1
第9题 (1.0分)
以下程序的输出结果为【1】,
#include "stdio.h" main(){int a;for(a=0;a<10;a++);printf("%d",a);}
答案:1). 10
第10题 (1.0分)
设i,j,k均为int型变量,则执行完for循环
for(i=0,j=10;i<=j;i++,j--) k=i+j;
后,k的值为【1】.
答案: 1). 10
*第11题 (1.0分)
程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.答案:1). 0
第12题 (1.0分)
以下do-while语句中循环体的执行次数是【1】.
a=10;
b=0;
do { b+=2; a-=2+b; } while (a>=0);答案:1). 3
第13题 (1.0分)
若有以下数组a,数组元素:a[0]~a[9],其值为
9 4 12 8 2 10 7 5 1 3
该数组可用的最小下标值是【1】.
答案:1). 0
第14题 (1.0分)
如果函数不要求带回值,可用【1】来定义函数返回值为空.答案: 1). void
第15题 (1.0分)
函数调用语句func((e1,e2),(e3,e4,e5))中含有【1】个实参.答案:1). 2
二、判断共15题 (共计15分)
第1题 (1.0分)
在C程序中,每行中只能写一条语句答案:N
第2题 (1.0分)
x*=y+8 等价于 x=x*(y+8).答案:Y
第3题 (1.0分)
语句scanf("%7.2f",&a);是一个合法的scanf函数.答案:N
第4题 (1.0分)
若i =3,则printf("%d",-i++);输出的值为 -4.答案:N
第5题 (1.0分)
在switch-case语句中,必须使用default语句.答案:N
第6题 (1.0分)
关于if语句中,条件表达式只能是关系表达式或逻辑表达式答案:N
第7题 (1.0分)
continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.
答案:Y
第8题 (1.0分)
C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.
答案:N
第9题 (1.0分)
char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句.
答案:Y
第10题 (1.0分)
若有定义和语句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21.
答案:Y
第11题 (1.0分)
数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数.
答案:N
第12题 (1.0分)
C语言中只能逐个引用数组元素而不能一次引用整个数组. 答案:Y
第13题 (1.0分)
如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准.
答案:Y
第14题 (1.0分)
C程序中有调用关系的所有函数必须放在同一个源程序文件中. 答案:N
第15题 (1.0分)
通过return语句,函数可以带回一个或一个以上的返回值. 答案:N
三、单项选择共20题 (共计40分)
第1题 (2.0分)
若k,g均为int型变量,则下列语句的输出为().
k=017; g=111; printf("%d\t",++k); printf("%x\n",g++); A:15 6f
B:16 70
C:15 71
D:16 6f
答案:D
第2题 (2.0分)
下列语句的结果是().
main()
{ int j;
j=3;
printf("%d,",++j);
printf("%d",j++);
}
A:3,3
B:3,4
C:4,3
D:4,4
答案:D
第3题 (2.0分)
设以下变量均为int类型,则值不等于7的表达式是(). A:(x=y=6,x+y,x+1)
B:(x=y=6,x+y,y+1)
C:(x=6,x+1,y=6,x+y)
D:(y=6,y+1,x=y,x+1)
答案:C
第4题 (2.0分)
下列程序段的输出结果为().
float k=0.8567;
printf("%6.1f%%",k*100);
A:0085.6%%
B:85.7%
C:0085.6%
D:.857
答案:B
第5题 (2.0分)
以下程序段的执行结果是().
double x;x=218.82631; printf("%-6.2f\n",x);
A:输出格式描述符的域宽不够,不能输出
B:输出为21.38e+01
C:输出为218.83
D:输出为218.82631
答案:C
第6题 (2.0分)
以下程序的输出结果为().
main()
{int i=010,j=10;
printf("%d,%d\n",++i,j--);
}
A:11,10
B:9,10
C:010,9
D:10,9
答案:B
第7题 (2.0分)
为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定: else子句总是与()配对.
A:缩排位置相同的if
B:其之前最近的if
C:其之后最近的if
D:同一行上的if
答案:B
第8题 (2.0分)
下列运算符中优先级最高的是().
A:<
B:+
C:&&
D:!= 答案:B
第9题 (2.0分)
选择结构中的条件与循环结构中循环成立的条件,
在写法上可以是任一表达式,但其值只能被判断为"真"或"假".
哪个数作为逻辑"假"值().
A:-1
B:1
C:非零的数
D:0答案:D
第10题 (2.0分)
执行语句 for(i=1;i++<4;); 后变量 i 的值是(). A:3
B:4
C:5
D:不定
答案:C
第11题 (2.0分)
下列程序的输出为().
main()
{ int y=10;
while(y--);
printf("y=%d\n",y);
}
A:y=0
B:while构成无限循环
C:y=1
D:y=-1
答案:D
第12题 (2.0分)
while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是(). A:t>=1e-5&&t<=-1e-5&&s>-10&&s<10
B:fabs(t)<1e-5&&!s/10
C:fabs(t)<1e-5
D:s/10==0
答案:A
第13题 (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
第14题 (2.0分)
语句while(!E);中的表达式!E等价于().
A:E==0
B:E!=1
C:E!=0
D:E==1
篇三:上海海事大学c语言练习题
试卷编号:9049所属语言:Turbo C试卷方案:09(2) 模拟试卷总分:100分 共有题型:5种
一、填空共15题 (共计15分)
第1题 (1.0分)
C语言表达式!(3<6)||(4<9)的值是【1】.
答案:1). 1 逻辑“或”
第2题 (1.0分)
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,%d\n",++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' ));
答案:1). 1
第8题 (1.0分)
当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<10;a++);printf("%d",a);}
答案:1). 10
第10题 (1.0分)
程序段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("%d\n",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,%d\n",++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=%%%d\n",k);(x十六进制整数,o八
B:++
C:&&
D:,
答案:B
第10题 (2.0分)
设j和k都是int类型,则for循环语句
for(j=0,k=0;j<=9&&k!=876;j++)( j<=9,k!=876) scanf("%d",&k)循环;(). A:最多执行10次
B:最多执行9次
C:是无限循环
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;n<=10;n++)
{
if(n%3==0) continue;
printf("%d",n);
}
}
A:12457810
B:369
C:12
D:1234567890
答案:A
第13题 (2.0分)
以下程序段的输出结果为().
for(i=4;i>1;i--)
for(j=1;j<i;j++)
putchar('#');
A:无
B:######
C:#
D:###
答案:B