C语言试题第一学期及答案.docx

上传人:b****5 文档编号:29050922 上传时间:2023-07-20 格式:DOCX 页数:17 大小:21.72KB
下载 相关 举报
C语言试题第一学期及答案.docx_第1页
第1页 / 共17页
C语言试题第一学期及答案.docx_第2页
第2页 / 共17页
C语言试题第一学期及答案.docx_第3页
第3页 / 共17页
C语言试题第一学期及答案.docx_第4页
第4页 / 共17页
C语言试题第一学期及答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言试题第一学期及答案.docx

《C语言试题第一学期及答案.docx》由会员分享,可在线阅读,更多相关《C语言试题第一学期及答案.docx(17页珍藏版)》请在冰豆网上搜索。

C语言试题第一学期及答案.docx

C语言试题第一学期及答案

重庆理工大学考试试卷

考试科目:

高级语言程序设计(C语言)(第一学期)A卷共页

班次姓名学号成绩

注:

答题做在后面答题试卷上。

一.选择填空(选择一个正确答案,将其对应字母填在横线上)(25分)

1.C程序中,unsignedintx;定义的变量取值范围为B;

A:

0~255B:

0~65535C:

0~32767D:

0~2147483647

2.C语言中,正确的字符与字符串表示方式为B;

A:

chara=‘a’,b=“abc”;B:

chara=‘a’,b[]=“abc”;

A:

chara=“a”,b[]=“abc”;B:

chara=‘a’,b[2]=“abc”;

3.若a是float型变量,b是int型变量,以下输入语句合法的是B;

A:

scanf(“%6.2f%f”,&a,&b)B:

scanf(“%8.1f%d”,&a,&b)

C:

scanf(“%6.2d%d”,&a,&d)D:

scanf(“%6.2f%c”,&a,&d)

4.如果i=1,执行j=++i;k=i++;其j、i和k的值是D;

A:

2,2,2;B:

1,2,3;C:

1,1,1;D:

2,3,2

5.在if(条件)语句执行时,当条件为D时C语言认为是“真”;

A:

TRUE;B:

.T.C:

0D:

非零值

6.如果inta[4]={1,2,3,4},*p=&a[2];执行p++;其*p+a[0]的值为D;

A:

2B:

3C:

4D:

5

7.设inta,b,c;且a=10;b=4;a/=b;则表达式(a/b?

b+a:

b-a)之值是C;

A:

0.5B:

6;C:

2;D:

-2

8.对于inta[10];正确的赋值语句是__A;

A:

*(a+2)=4;B:

a=6;C:

a+2=4;D:

*(a+15)=4;

9.设intx,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是C;

A:

4B:

16C:

32D:

52

10.对于inta[][3]={1,2,3,4,5,6,7,8,9,10}说明语句,

且有:

数据元素a[1][2]+a[3][1]的值为____D_____;

A:

15B:

16C:

8D:

6

11.intn=97;

switch(n/10-4)

{case2:

n=n+1;

case3:

n=n*2;

case5:

n=n-2;

case7:

n=n+3;break;

default:

n=n/2;

}

n的正确结果值是____D____

A:

95B:

96C:

97D:

98

12.已知inti=j=2;char*a="abcdefg",c;

执行c=*(a=a+3);c的值是____C______。

A.‘b’B:

‘c’C:

‘d’D:

‘e’

13.阅读下列程序,结果是C

main()

{inta=5,b=0,c=0;

if(a=b+c)printf("***\n");

elseprintf("###\n");

A:

语法有错误,不能编译B:

输出***C:

通过编译,但不能连接D:

输出###

14.for(;3;);代表的意义是A;

A:

死循环B:

不循环C:

循环3次D:

语法错误

15.对于表达式53/2&&!

0和!

(15>3||5<6-8)的逻辑值,分别是B;

A:

0,1B:

1,0C:

0,0;D:

1,1

16.有时需要使几种不同类型的变量存放到在一起,形成一个变量,这种变量,称为A;

A:

结构体变量B:

字符变量C:

整型变量D:

实数变量

17.设charw;intx;floaty;doublez;表达式w*x+z-y的值的数据类型为D

A:

charB:

intC:

floatD:

double

18.有以下程序段C

FILE*fp;

fp=fopen(“a1”,“r”);

其表示为

A:

定义了一个普通指针,函数值给指针赋值。

B:

定义了一个文件a1

C:

打开一个文件,该文件可读可写D:

打开一个文件,该文件只能读不能写

19.下面对数组的定义正确的是A

A:

intn=10;intarray[n];B:

intarray(10);

C:

intn;scanf(“%d”,&n);intarray[n];

D:

intn;intarray[n];scanf(“%s”,array);

20.下面各语句行中,能正确进行赋字符串操作的语句行是C

A:

chars[4][5]="abcd","123";B:

chars[5]={‘a’,‘b’,‘c’,‘e’,‘f’};

C:

char*s;s="abcd";D:

chars[5];s="abcd";

21.在一个C语言程序构成中,较完整的描述是D

A:

由主程序与子程序构成B:

由多个主函数与多个子函数构成

C:

由主函数与子函数构成D:

由一个主函数与多个子函数构成

22.C语言在程序开始执行时,其正确的描述是B

A:

由编写程序语句的顺序格式执行B:

在主函数main()开始处执行

C:

在第一个子函数处执行D:

由人随机选择执行

*23.下列有关函数错误的描述是A

A:

C语言中允许函数嵌套定义B:

C语言中允许函数递归调用

C:

调用函数时,实参与形参的个数、类型需完全一致

D:

C语言函数的缺省数据类型是int类型

*24.在C语言中,函数的返回值的类型是由D

A:

在程序编译时决定B:

由调用该函数的主调函数所决定

C:

由return的表达式的类型所决定D:

由定义该函数时指定的函数类型所决定

25.当调用函数时,如果实参是一个数组名,则向函数传送的是B

A:

数组的首元素B:

数组的首地址

C:

数组每个元素的地址D:

数组每个元素中的值

二.读下列程序,给出程序的运行结果(30分)

1.main()

{inti,j,m,n;

i=5;j=6;n=10;

m=++i;n/=j++;

printf(“m1=%dn1=%d”,m,n);

m=i++;n=++j;

printf(“m2=%dn2=%d”,m,n);

}

结果:

m1=6n1=1m2=6n2=8

2.main()

{inta[20],b=1;

for(a[0]=b;b<=10;b+=2)

{a[b]=b;

if(b>7)break;

b++;}

printf(“a=%d”,a[b]);

}

结果:

a=10

3.

#include“stdio.h”

main()

{charch;

scanf("%c",&ch);

if(ch>=’B’&&ch<=’M’)putchar(ch+32);

elseputchar(ch);

}

输入M,运行结果为:

_m____;输入b,运行结果为:

__b___

4.

main()

{inta[3][3]={1,2,3,4,5,6,7,8,9};

int*p1=&a[1][2],*p2=a+2;

printf("%d,%d\n",*p1,*p2);

printf("%d,%d\n",*(++p2),a[2][2]);

}

输出为:

5.

main()

{inti;

char*p,b[10];

p=“abcde”;

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

{b[i]=*p;p++;}

b[i]='\0';

printf(“%s”,b);

}

输出为:

b=abc

6.

#include"stdio.h"

intfun(intx)

{inty=0;

staticz=3;

y++;

z++;

return(x+y+z);

}

main()

{inta=2,i;

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

printf("\t%d",fun(a);

}

*结果为:

7,8,9。

三.填空题(25分)

1.如果p是一个指针,那么*&p表示的含义是指针P所指向的内容,而&*p表示的含义是指针P所指向的内容的地址。

2.已知数组s为一有8个单元的整型数组,下面的语句的语句试图求出这8个单元的平均值,并用ave保存这个值;请补充完整下面的语句。

intj,s[]={1,2,3,4,5,6,7,8},sum=0;

for(j=0;j<8;j++)sum=s[i]+sum;

ave=sum/8;

3.变量在程序使用中,其作用域可分为全局变量和局部变量。

4.打印如下图案,选择合适的句子填入该程序空格中。

0

000

00000

0000000

00000

000

0

#include

voida(inti)

{intj,k;

for(j=0;j<7-i;j++)printf(“”);

for(k=0;__k<2i+1______;k++)printf(“0”);

printf(“\n”);

}

main()

{inti;

for(i=0;i<3;i++)__a(i)_______;

for(i=3;i>=0;i--)__a(i)_______;

}

5.用选择法对数组为n个整数进行由大到小排序,选择合适的句子填入该空格中。

#definN100

main()

{inti,a[N],n;

scanf("%d",&n);

voidsort(intarray[],intn);

for(i=0;i

sort(a,n);

printf("thesortedarray:

\n);

for(i=0;i<15;i++)printf("%d",a[i]);

}

voidsort(intarray[],intn)

{inti,j,k,t;

for(i=0;i

{k=i;

for(j=i+1;j

if(array[j]>array[k]k=j;

t=array[k];array[k]=array[i];array[i]=t;

}

}

6.下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数,选择合适的句子填入该程序空格中。

main()

{inta[5],max,min,i,j,k;

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

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

min=a[0];

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

if(a[i]

max=a[0];

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

if(a[i]>max){max=a[i];___i=j_____;}

_a[k]=max,a[j]=min;__________

printf(“\nThepositionofminis:

%3d\n”,k);

printf(“Thepositionofmaxis:

%3d\n”,j);

for(i=1;i<5;i++)printf(“%5d\n”,a[i]);

}

四.编写程序(20分)

1.通过键盘输入10整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。

#include

voidmain()

{

inta[10],b[10],i,j=0,k=0;

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

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

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

if(a[i]%2==0)

{

b[j]=a[i];

j++;

k++;

}

for(j=0;j

printf("%d",b[j]);

printf("\n");

}

2.在两题中,可选择其中一题。

(1)编写一个累加求和的子函数,在主函数中调用其子函数,实现1~100中的偶数求和;

#include

voidmain()

{

ints(intx,inty);

inti,p=0;

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

if(i%2==0)

p=s(p,i);

printf("%d",p);

}

ints(intx,inty)

{

inta;

a=x+y;

return(a);

}

(2)编程求一个n*n矩阵的主对角线元素求和的子函数,在主函数中输入n以及矩阵各元素的值(设该矩阵元素均为整型数据)。

#include

voidmain()

{

intsum(inta[][100],intn);

inta[100][100];

inti,j,f,n;

scanf("%d",&n);

printf("pleaseinput%d*%dintegers:

",n,n);

for(i=0;i

for(j=0;j

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

f=sum(a,n);

printf("%d",f);

printf("\n");

}

intsum(inta[][100],intn)

{

inti,sum=0,s1=0,s2=0;

for(i=0;i

{s1=s1+a[i][i];

s2=s2+a[i][n-i-1];}

sum=sum+s1+s2;

return(sum);

}

 

高级语言程序设计(C语言)答题卷

班次姓名学号成绩

题号

总分

得分

评阅人

得分

一.选择填空(25分,每空1分)

1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

12:

13:

14:

15:

16:

17:

18:

19:

20:

21:

22:

23:

24:

25:

评阅人

得分

二.读下列程序,给出程序的运行结果(30分)

1:

2:

3:

 

4:

5:

6:

评阅人

得分

三.程序填空(25分)

1.

2.

3.4.

5.6.

评阅人

得分

四.编写程序(20分)

 

C语言试题(2003~2004第一学期)A卷

答案:

一.选择填空(25分,每空1分)

1:

B2:

B3:

B4:

D5:

D

6:

D7:

C8:

A9:

C10:

D

11:

D12:

C13:

C14:

A15:

B

16:

A17:

D18:

D19:

A20:

C

21:

D22:

B23:

A24:

D25:

B

二.读下列程序,给出程序的运行结果(30分,每题5分)

1:

m1=6n1=1m2=6n2=8

2:

a=10

3:

M结果m

b结果b

4:

6,7

8,9

5:

abc

6:

789

三.填空题(25分)

1.指针p所指向的内容p指针所指向的内容的地址(3分)

2.0j=0j<8sum=s[i]+sum;sum(5分)

3.全局变量局部变量(2分)

4.k<2*i+1

a[i]

a[i]

5.nintarray[]j

6.j=i

k=i

a[j]=maxa[k]=min

五.编写程序(20分)

四.编写程序(20分)

1.通过键盘输入10整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。

#include

voidmain()

{

inta[10],b[10],i,j=0,k=0;

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

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

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

if(a[i]%2==0)

{

b[j]=a[i];

j++;

k++;

}

for(j=0;j

printf("%d",b[j]);

printf("\n");

}

2.在两题中,可选择其中一题。

(1)编写一个累加求和的子函数,在主函数中调用其子函数,实现1~100中的偶数求和;

#include

voidmain()

{

ints(intx,inty);

inti,p=0;

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

if(i%2==0)

p=s(p,i);

printf("%d",p);

}

ints(intx,inty)

{

inta;

a=x+y;

return(a);

}

(2)编程求一个n*n矩阵的主对角线元素求和的子函数,在主函数中输入n以及矩阵各元素的值(设该矩阵元素均为整型数据)。

#include

voidmain()

{

intsum(inta[][100],intn);

inta[100][100];

inti,j,f,n;

scanf("%d",&n);

printf("pleaseinput%d*%dintegers:

",n,n);

for(i=0;i

for(j=0;j

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

f=sum(a,n);

printf("%d",f);

printf("\n");

}

intsum(inta[][100],intn)

{

inti,sum=0,s1=0,s2=0;

for(i=0;i

{s1=s1+a[i][i];

s2=s2+a[i][n-i-1];}

sum=sum+s1+s2;

return(sum);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1