您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页上海海事大学,C语言试卷14

上海海事大学,C语言试卷14

来源:华佗小知识
试卷编号:9688 所属语言:C语言 试卷方案:期中考试

一、填空 共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分) 题号:78

已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是【1】. 答案:

=======(答案1)======= 15

第3题 (1.0分) 题号:510

若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】. 答案:

=======(答案1)======= 2

第4题 (1.0分) 题号:437 以下程序的输出结果为【1】,

#include \"stdio.h\" main(){int

a=010,j=10;printf(\"%d,%d\\n\ 答案:

=======(答案1)======= 9,10

第5题 (1.0分) 题号:431

执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf(\"%d %c\ 答案:

=======(答案1)======= 97 b

第6题 (1.0分) 题号:293 getchar()函数只能接收一个【1】. 答案:

=======(答案1)======= 字符

第7题 (1.0分) 题号:440

设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案:

=======(答案1)======= 1

第8题 (1.0分) 题号:95

已知a=13,b=6, a&&b的十进制数值为【1】. 答案:

=======(答案1)======= 1

第9题 (1.0分) 题号:306

当a=1,b=2,c=3时,执行以下程序段后b=【1】.

第11题 (1.0分) 题号:398

程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.

if (a>c) b=a; a=c; c=b; 答案:

=======(答案1)======= 2

第10题 (1.0分) 题号:532

以下do-while语句中循环体的执行次数是【1】.

a=10;

b=0;

do { b+=2; a-=2+b; } while (a>=0); 答案:

=======(答案1)======= 3

答案:

=======(答案1)======= 0

第12题 (1.0分) 题号:438 以下程序的输出结果为【1】,

#include \"stdio.h\" main(){int a;for(a=0;a<10;a++);printf(\"%d\ 答案:

=======(答案1)======= 10

第13题 (1.0分) 题号:336

若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组的元素中,数值最大的元素的下标值是【1】. 答案:

=======(答案1)======= 2

第14题 (1.0分) 题号:341

定义int a[2][3];表示数组a中的元素个数是【1】个. 答案:

=======(答案1)=======

6

第15题 (1.0分) 题号:328 C语言中,数组元素的下标下限为【1】. 答案:

=======(答案1)======= 0

二、判断 共15题 (共计15分) 第1题 (1.0分) 题号:940 int a[9]; 则a数组的下标范围是1-9 答案:N

第2题 (1.0分) 题号:935

在C程序中,%是只能用于整数运算的运算符 答案:Y

第3题 (1.0分) 题号:929

在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char第4题 (1.0分) 题号:194 若有定义和语句: int a;char c;float

f;scanf(\"%d,%c,%f\若通过键盘输入:

10,A,12.5,则a=10,c='A',f=12.5. 答案:Y

第5题 (1.0分) 题号:961

C语言本身并不提供输入输出语句.但可以通过输入输出函数来实现数据的输入输出. 答案:Y

第6题 (1.0分) 题号:721 语句scanf(\"%7.2f\是一个合法的scanf函数. 答案:N

第7题 (1.0分) 题号:951

在执行switch语句时,default和各个case的出现次序不影响执行结果. 答案:Y

第8题 (1.0分) 题号:869 若有int i=10, j=0;则执行完语句 if (j=0)i++; else i--; i的值为11. 答案:N

第9题 (1.0分) 题号:930

关于if语句中,条件表达式只能是关系表达式或逻辑表达式 答案:N

第10题 (1.0分) 题号:952

do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式. 答案:N

第11题 (1.0分) 题号:953

C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况. 答案:N

第12题 (1.0分) 题号:9

continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.

答案:Y

第13题 (1.0分) 题号:941

在定义二维数组时,可以将该数组的两个维数全部省略 答案:N

第14题 (1.0分) 题号:735

如果想使一个数组中全部元素的值为0,可以写成

int a[10]={0*10}; 答案:N

第15题 (1.0分) 题号:736

int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列

的元素赋初值,其余元素值为0. 答案:Y

三、单项选择 共20题 (共计40分) 第1题 (2.0分) 题号:2056 以下程序的输出结果是(). main() {float x=3.6; int i; i=(int)x;

printf(\"x=%f,i=%d\\n\}

A:x=3.600000,i=4 B:x=3,i=3 C:x=3.600000,i=3 D:x=3 i=3.600000 答案:C

第2题 (2.0分) 题号:2214

在C语言中,char型数据在内存中的存储形式是(). A:补码 B:反码

C:原码 D:ASCII码 答案:D

第3题 (2.0分) 题号:2174 C语言程序中必须有的函数是(). A:#include \"stdio.h\" B:main C:printf D:scanf 答案:B

第4题 (2.0分) 题号:2040

若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97), 则以下程序段的执行结果是().

ch='a'; k=12; printf(\"%x,%o,\printf(\"k=%%%d\\n\

A:因变量类型与格式描述符的类型不匹配,输出无定值

B:输出项与格式描述符个数不符,输出为零值或不定值 C:61,141,k=%12 D:61,141,k=%d 答案:C

第5题 (2.0分) 题号:2049 以下程序的输出结果为(). main()

{int i=010,j=10;

printf(\"%d,%d\\n\} A:11,10 B:9,10 C:010,9 D:10,9

答案:B

第6题 (2.0分) 题号:21

从键盘上输入某字符串时,不可使用的函数是().

A:getchar() B:gets() C:scanf() D:fread() 答案:A

第7题 (2.0分) 题号:2045

若给定条件表达式(M)?(a++):(a--),则其中表达式M(). A:和(M==0)等价 B:和(M==1)等价 C:和(M!=0)等价 D:和(M!=1)等价 答案:C

第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分) 题号:2122 下列程序的输出结果是(). main()

{ int x=1,y=0,a=0,b=0;

switch(x) {

case 1:switch(y)

{

case 0:a++;break;

case 1:b++;break;

}

case 2:a++;b++;break;

case 3:a++;b++;break; }

printf(\"a=%d,b=%d\\n\ }

A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 答案:B

第10题 (2.0分) 题号:2050

C 语言中以下几种运算符的优先次序()的排列是正确的.

A:由高到低为:!,&&,||,算术运算符,赋值运算符

B:由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符

C:由高到低为:算术运算符,关系运算符,赋值

运算符,!,&&,||

D:由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符 答案:B

第11题 (2.0分) 题号:2263 以下不正确的if语句形式是(). A:if(x>y&&x!=y); B:if(x==y) x+=y;

C:if(x!=y) scanf(\"%d\scanf(\"%d\D:if(x第12题 (2.0分) 题号:2059 以下程序的运行结果是(). main() { int n;

for(n=1;n<=10;n++) {

if(n%3==0) continue; printf(\"%d\ } }

A:12457810 B:369 C:12

D:12345670 答案:A

第13题 (2.0分) 题号:2061

在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的 表达式是(). A:(!E==0) B:(E>0||E<0) C:(E==0) D:(E!=0)

答案:C

第14题 (2.0分) 题号:2058 以下程序的运行结果是(). main() {

int i=1,sum=0;

while(i<10) sum=sum+1;i++; printf(\"i=%d,sum=%d\}

A:i=10,sum=9 B:i=9,sum=9 C:i=2,sum=1 D:运行出现错误 答案:D

第15题 (2.0分) 题号:2068 设j和k都是int类型,则for循环语句 for(j=0,k=-1;k=1;j++,k++) printf(\"****\\n\");(). A:循环结束的条件不合法 B:是无限循环

C:循环体一次也不执行 D:循环体只执行一次 答案:B

第16题 (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

第17题 (2.0分) 题号:2278

以下能对一维数组a进行正确初始化的语句

是().

A:int a[10]=(0,0,0,0,0) B:int a[10]={}; C:int a[]={0}; D:int a[10]={10*1}; 答案:C

第18题 (2.0分) 题号:2284

若有说明: int a[3][4]={0};则下面正确的叙述是().

A:只有元素a[0][0]可得到初值0 B:此说明语句不正确

C:数组a中各元素都可得到初值,但其值不一定为0

D:数组a中每个元素均可得到初值0 答案:D

第19题 (2.0分) 题号:2256

printf函数中用到格式符%5s,其中数字5表示输出的字符串占用

5列,如果字符串长度大于5,则输出按方式().

A:从左起输出该字符串,右补空格 B:按原字符长从左向右全部输出 C:右对齐输出该字串,左补空格 D:输出错误信息 答案:B

第20题 (2.0分) 题号:2275 以下对二维数组a的正确说明是(). A:int a[3][] B:float a(3,4) C:double a[1][4] D:float a(3)(4) 答案:C

四、程序填空 共4题 (共计24分) 第1题 (6.0分) 题号:427

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3

元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡 各多少只?

-------------------------------------------------------*/ #include main()

{int cocks,hens,chicks; cocks=0;

while(cocks<=19)

/***********SPACE***********/ {【?】=0;

/***********SPACE***********/ while(hens<=【?】) {chicks=100.0-cocks-hens;

if(5.0*cocks+3.0*hens+chicks/3.0==100.0)

printf(\"%d,%d,%d\\n\/***********SPACE***********/ 【?】; }

/***********SPACE***********/ 【?】; }; } 答案:

=======(答案1)======= hens

=======(答案2)======= 33

=======(答案3)======= hens++

=========或========= ++hens

=========或========= hens=hens+1

=======(答案4)======= cocks++

=========或========= ++cocks

=========或========= cocks=cocks+1 =========或========= cocks= cocks + 1

第2题 (6.0分) 题号:459

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为

1~100分。选手最后得分为:去掉一个最高分和一个最低分

后其余8个分数的平均值。请编写一个程序实现。

-------------------------------------------------------*/

#include void main() {

int score,i,max,min,sum; max=-32768; min=32767; sum=0;

for(i=1;i<=10;i++)

{

printf(\"Input number %d=\/***********SPACE***********/

scanf(\"%d\【?】); sum+=score;

/***********SPACE***********/

if(【?】)max=score; /***********SPACE***********/

if(【?】)min=score; }

printf(\"Canceled max score:%d\\nCanceled min score:%d\\n\

/***********SPACE***********/

printf(\"Average score:%d\\n\【?】); } 答案:

=======(答案1)======= &score

=======(答案2)======= score>max

=========或========= max=======(答案3)======= score=========或========= min>score

=======(答案4)======= (sum-max-min)/8 =========或========= (sum -max - min )/8

第3题 (6.0分) 题号:6

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:以下程序是用选择法对10个整数按升序排序,程序中有4个空, 填空使程序完整。

-------------------------------------------------------*/

/***********SPACE***********/ 【?】 main() {

int i,j,k,t,a[N]; for(i=0;i<=N-1;i++) scanf(\"%d\ for(i=0;i/***********SPACE***********/ 【?】

/***********SPACE***********/ for(j=i+1; 【?】;j++) if(a[j]if(【?】){t=a[i];a[i]=a[k];a[k]=t;} }

printf(\"output the sorted array:\\n\"); for(i=0;i<=N-1;i++) printf(\"%5d\ printf(\"\\n\"); } 答案:

=======(答案1)======= #define N 10

=======(答案2)======= k=i;

=======(答案3)=======

j=========或========= N>j

=========或========= j<=N-1

=========或========= N-1>=j

=======(答案4)======= k != i

第4题 (6.0分) 题号:17

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:以下程序的功能是删除字符串中的指定字符,字符串和

要删除的字符均由键盘输入。

-------------------------------------------------------*/

#include \"stdio.h\" main() {

char str[80],ch; int i,k=0;

/***********SPACE***********/ gets(【?】); ch=getchar();

/***********SPACE***********/ for(i=0;【?】;i++)

/***********SPACE***********/ if(str[i]!=ch) {【?】;k++;} /***********SPACE***********/ 【?】; puts(str); } 答案:

=======(答案1)======= str

=======(答案2)======= str[i]!='\\0'

=========或========= str[i]!=NULL

=========或========= str[i]!=0

=========或========= str[i]

=======(答案3)======= str[k]=str[i] =========或========= *(str+k)=*(str+i) =========或========= str[k]=*(str+i) =========或========= *(str+k)=str[i]

=======(答案4)======= str[k]='\\0'

=========或========= *(str+k)='\\0' =========或========= str[k]=NULL

=========或========= str[k]=0

=========或========= *(str+k)=0

=========或========= *(str+k)=NULL

五、程序设计 共1题 (共计6分) 第1题 (6.0分) 题号:404

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:编写函数fun,求任一整数m的n次方。

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函

数fun的花括号中填入所编写的若干语句。

------------------------------------------------*/ #include \"stdio.h\" main() { int m,n; long s;

long fun(int,int);

printf(\"输入m和n的值:\"); scanf(\"%d,%d\ s=fun(m,n);

printf(\"s=%ld\\n\ getch(); yzj(); }

long fun(int m,int n) {

/**********Program**********/

/********** End **********/ } yzj() {

FILE *IN,*OUT; int n; int i[2]; long o;

IN=fopen(\"in.dat\if(IN==NULL)

{printf(\"Read File Error\");

}

OUT=fopen(\"out.dat\if(OUT==NULL)

{printf(\"Write File Error\"); }

for(n=0;n<2;n++) {

fscanf(IN,\"%d\}

o = fun(i[0],i[1]); fprintf(OUT,\"%ld\\n\

fclose(IN); fclose(OUT); }

答案:---------------------- long int x=1; int i;

for(i=1;i<=n;i++) x=x*m; return x;

----------------------

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务