admin 管理员组

文章数量: 1184232


2024年3月7日发(作者:慧编程app)

大学计算机专业《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,%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' ));

答案: 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("%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

ch='a'; k=12; printf("%x,%o,",ch,ch); printf("k=%%%dn",k);(x十六进制整数,o八

第9题 (2.0分)

以下运算符中,优先级最高的运算符是().

A:?:

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

putchar('#');

A:无

B:######

C:#

D:###

答案:B

第14题 (2.0分)

设j和k都是int类型,则for循环语句().

for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);

A:最多执行10次

B:最多执行9次

C:是无限循环

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<0)j=【?】;

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

scanf("%d",【?】);

}

printf("i=%4dn",i,j);

}

答案:

1). i + 1

2). j + 1

3). &n

第2题 (6.0分)

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

【程序填空】

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

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

填空使程序完整。

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

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

【?】

main()

{

int i,j,k,t,a[N];

for(i=0;i<=N-1;i++)

scanf("%d",&a[i]);

for(i=0;i

{

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

【?】

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

for(j=i+1; 【?】;j++)

if(a[j]

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

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",a[i]);

printf("n");

}

答案:

1). #define N 10

2). k=i;

3). jj 或 j<=N-1 或 N-1>=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("","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%ldn",iOUT);

}

fclose(IN);

fclose(OUT);

}

答案:----------------------

int i;

float f=1,s=0;

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

{f=f*i;

s=s+f;}

return s;

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

第2题 (6.0分)

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

【程序设计】

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

题目:编写函数fun其功能是:根据整型形参m,

计算如下公式的值:

y=1/5+1/6+1/7+1/8+1/9++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("","r");

if(IN==NULL)

{printf("Read File Error");

}

OUT=fopen("","w");

if(OUT==NULL)

{printf("Write File Error");

}

for(i=0;i<5;i++)

{ fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,"%fn",o);

}

fclose(IN);

fclose(OUT);

}

答案:----------------------

double y=0;

int i;

for(i=0; i<=m; i++)

{y+=1.0/(i+5); }

return(y);

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

第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("","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%dn",iOUT);

}

fclose(IN);

fclose(OUT);

}

答案:----------------------

int i,k,s=0;

for(i=2;i<=m;i++)

{for(k=2;k

if(i%k==0)break;

if(k==i)s=s+i;

}

return s;

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


本文标签: 函数 循环 语句 数组 程序