南昌大学学年C程序设计A卷试题及答案.docx

上传人:b****2 文档编号:24439482 上传时间:2023-05-27 格式:DOCX 页数:17 大小:34.63KB
下载 相关 举报
南昌大学学年C程序设计A卷试题及答案.docx_第1页
第1页 / 共17页
南昌大学学年C程序设计A卷试题及答案.docx_第2页
第2页 / 共17页
南昌大学学年C程序设计A卷试题及答案.docx_第3页
第3页 / 共17页
南昌大学学年C程序设计A卷试题及答案.docx_第4页
第4页 / 共17页
南昌大学学年C程序设计A卷试题及答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

南昌大学学年C程序设计A卷试题及答案.docx

《南昌大学学年C程序设计A卷试题及答案.docx》由会员分享,可在线阅读,更多相关《南昌大学学年C程序设计A卷试题及答案.docx(17页珍藏版)》请在冰豆网上搜索。

南昌大学学年C程序设计A卷试题及答案.docx

南昌大学学年C程序设计A卷试题及答案

试卷编号:

(A)卷

课程编号:

H61050001课程名称:

C程序设计考试形式:

闭卷

适用班级:

全校理工科姓名:

学号:

班级:

学院:

专业:

考试日期:

2006、06、23

题号

总分

累分人签名

题分

50

18

20

12

100

得分

考生注意事项:

1、本试卷共9页,请查看试卷中是否有缺页或破损。

如有立即举手报告以便更换。

2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。

一、单项选择题(每空2分,共50分)

(请将各小题正确答案的字母序号填到相应小题的下划线上)

得分

评阅人

1.C语言的运算符按运算对象的数目可以分为。

A)单目运算一种B)单目和双目运算符

C)单目、双目和三目运算符D)单目、双目、三目运算和四目运算符

2.C语言表达式2/5*10的值是。

A)0.04B)4C)4.0D)0

3.已知变量f和i的类型说明如下:

floatf=12.34;inti;

则以下符合C语言语法的表达式是。

A)i=(int)f%5B)i=int(f)%5

C)i=f%5D)i=(intf)%5

4.能正确表示数学式1≤x≤5的C语言表达式是。

A)1<=x<=5B)(x>=1)&(x<=5)

C)(x>=1)&&(x<=5)D)(1<=x)||(5>=x)

5.设变量c的数据类型是char,i的数据类型是int,f的数据类型是float,则C语言表达式c*i+c*f-i+100值的数据类型为。

A)intB)floatC)charD)不确定

南昌大学2005~2006学年第二学期期末考试试卷

6.在下列选项中,合法的C语言用户标识符的是。

A)intB)sinC)ifD)i+j

7.C程序的执行从开始。

A)程序中的第1个语句B)程序中的第1个函数

C)名为main的函数D)包含文件的第1个函数

8.凡在C语言函数中未指定存储类别的变量,其隐含的存储类别为。

A)自动(auto)B)静态(static)C)字符串D)字符或字符型变量值

9.以下程序运行时要求输入10和20分别存放在变量x和y中,能正确输入数据的是。

main()

{intx,y;

scanf("x=%d,y=%d",&x,&y);

printf("x+y=%d",x+y);

}

(说明:

表示换行符,用_表示空格符)

A)10_20B)x=10,y=20

C)10D)x=10

20y=20

10.下面程序的运行结果是。

main()

{

inta,b;

a=32767;

b=a+1;

printf("a=%d,b=%d\n",a,b);

}

A)a=32767,b=-32768B)a=32767,b=32768

C)a=32767,b=1D)运行出错

11.在C语言中,以下错误的描述是。

A)break语句不能用于循环语句和switch语句外的任何其它语句

B)在switch语句中使用break语句或continue语句的作用相同

C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环

D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

12.在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是。

A)数组首地址B)数组的第一个元素值

C)数组中全部元素的值D)数组元素的个数

13.C语言编译系统对宏命令是。

A)在程序运行时进行替换处理

B)在程序连接时进行处理

C)和源程序中其它C语句同时进行编译

D)在对源程序中其它成份正式编译之前进行处理

14.设x、y为整型变量且已赋值,将其中较大的值输出的、正确的if语句是。

A)if(x>y)printf(“%d”,x);

B)if(x>y)printf(“%d”,x);printf(“%d”,y);

C)if(x>y);printf(“%d”,x);elseprintf(“%d”,y);

D)if(x>y)printf(“%d”,x);elseprintf(“%d”,y);

15.对以下程序段描述正确的是。

x=10;

while(x)x=x/4;

A)不执行循环体B)循环体执行一次C)循环体执行二次D)死循环

16.在C语言中,引用数组元素时,对数组下标的数据类型以下说法错误的是。

A)数组下标可以用整型常量B)数组下标可以用整型变量

C)数组下标可以用任意类型的表达式D)数组下标可以用整型表达式

17.以下C函数的功能是。

intfun(intx,inty)

{intz=0;

z=x>y?

x:

y;

returnz;}

A)求x和y二者中的最大值B)求x和y二者中的最小值

C)返回一个不确定的值D)返回函数值为“0”

18.定义数组:

ints[10];则数组元素下标的取值。

A)最小值为1,最大值为10B)最小值为0,最大值为10

C)最小值为0,最大值为9D)最小值为1,最大值为9

19.已知inti,s[4][5];不能表示数组第3行第3列元素值的是。

A)*(*(x))+3B)x[3][3]

C)*(*(x+3)+3)D)*(x[3]+3)

20.以下C函数的类型是。

fun(floatf)

{printf(“%f\n”,f);}

A)intB)floatC)voidD)无法确定

21.设char*s1,s2[255]=“programing”;以下操作正确的是。

A)*s1=“function”;B)s2=“function”;s1=s2;

C)s1=“function”;s2=s1;D)*s2='P';s1=s2;

22.设有说明语句:

structstudent

{intnum,age;};

structstudentstu[3]={{6001,20},{6003,21},{6005,19}};

structstudent*p=stu;

则下面的C语言表达式中,值为6003的是。

A)++(p->num)B)(p++)->num

C)(*p++).numD)(*++p).num

23.已有定义int(*p)();则指针p可以。

A)代表函数的返回值B)指向函数的入口地址

C)代表函数的类型D)代表函数返回值的类型

24.若用下列语句输出26个大写英文字母:

(1)for(a='A';a<='Z';a++)printf("%c",a);

(2)for(a='Z';a>='A';a--)printf("%c",a);

(3)for(a='A';a<='Z';)printf("%c",a++);

(4)for(a='A';a++<='Z';)printf("%c",a);

以下说法正确的是。

A)全都能输出B)只有前三个语句可以输出

C)只有前两个语句可以输出D)只有第一个语句可以输出

25.设以下程序用来求三个元素的数组中,第1个元素与第3个元素之和(程序每行前面的数字表示行号)。

1main()

2{inta[3]={3*0},i;

3for(i=1;i<3;i++)scanf("%d",a[i]);

4for(i=1;i<3;i++)a[0]=a[0]+a[i+1];

5printf("%d",a[0]);}

则下述说法正确的是。

A)第2行有语法错误B)第3行有错误,程序得不到预期结果

C)编译时第4行出现语法错误D)可以得到正确结果

二、程序阅读题(每小题3分,共18分)

(写出以下程序运行的结果)

得分

评阅人

26.

#include

main()

{inta,b,c,d;

unsignedu;

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf("a+u=%d,b+u=%d\n",c,d);}

程序运行结果为:

27.

#include

main()

{inta=10,b=0;

if(a!

=0)

{a=a+1;b=b+1;}

else

{a=a+2;b=b+2;}

printf(“%d,%d\n",a,b);}

程序运行结果为:

28.

#defineV(s)s*s*s

#include

main()

{intvolume;

volume=V

(1);printf("%d\t",volume);

volume=V

(2);printf("%d\t",volume);

volume=V(1+2);printf("%d\n",volume);

}

程序运行结果为:

 

29.

#include

main()

{chars[]={"12345"};

voidsub_s1(chars[],intn);

voidsub_s2(chars[],intn);

sub_s1(s,5);sub_s2(s,6);

}

voidsub_s1(chars[],intn)

{inti,j;

for(i=0;i

{for(j=0;j

printf("\n");

}

}

voidsub_s2(chars[],intn)

{inti,j;

for(i=0;i

{for(j=i;j

printf("\n");

}

}

程序运行结果为:

30.

#include

main()

{inti,a;intfun(intm);

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

{a=fun(4+i);printf("%d\n",a);}

}

intfun(intm)

{staticintn=0;

m/=2;m=m*2;

if(m)

{n=n*m;return(fun(m-2));}

elsereturn(n++);

}

程序运行结果为:

31.

#include

main()

{inti,k=0,s[10]={1,2,3,4,5,6,7,8,9,10};

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

if(i%2)k+=s[i];

for(i=i-1;i>=0;i--)

if(i%5==0)printf(“%d\t”,s[i]);

printf(“%d\n”,k);

}

程序运行结果为:

三、填空题(每空2分,共20分)

(请在下划线上填入合适的内容,完成程序或程序段所要求的功能)

得分

评阅人

32.以下程序运行时从键盘输入字符串ABCDE按回车键结束输入,要求在下划线上填入合适的内容,使输入字符串中的‘A’和‘B’转换为字符‘#’输出,其它字符输出为‘*’。

#include

main()

{charc;

while((c=getchar())!

=________________)

{switch(c)

{case'A':

case'B':

putchar('#');___________________;

default:

putchar('*');

}

}

}

33.以下程序从键盘输入20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。

请填空完成。

#include

main()

{inti,a[20],s,n;

s=n=0;

for(i=0;i<20;i++)____________;

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

{if(a[i]<0)

__________________;

s+=a[i];n++;

}

printf("s=%d\t,n=%d\n",s,n);

}

34.以下函数的功能是删除字符串s中所出现的与变量c相同的字符,请填空完成。

voidfun(chars[],charc)

{inti,j;

for(i=j=0;;i++)

if(s[i]!

=c)___________________;

s[j]='\0';}

35.以下程序输出1+2+3+……+10的和,请填空完成。

#include

main()

{_______________;

i=1;

do

{s=s+i;

i++;

}while___________________;

printf("%d\n",s);}

36.设fp为文件型指针变量,ch为字符变量,以下程序段从键盘输入字符,然后存入磁盘文件,直到输入一个‘#’为止,请填空完成。

(注:

‘#’不存入文件中)

ch=getchar();

while(__________)

{_____________;

ch=getchar();

}

fclose(fp);

四、程序设计题(第1小题4分,第2小题8分,共12分)

得分

评阅人

37.编制一个自定义函数,函数的形参为字符数组s1和s2,函数功能是将字符串s1中的所有数字字符取出,存入另一字符数组s2中,使s2成为一个新的字符串,并在函数中将字符串s2输出。

(请按题目要求只需用自定义函数完成全部功能)

 

38.已知某数列前两项分别为2和3,其后继项根据数列最后两项的乘积,按下列规则生成:

(1)若乘积为一位数,则该乘积即为数列的后继项;

(2)若乘积为二位数,则该乘积的十位数字和个位数字依次作为数列的两个后继项。

编制程序计算数列前20项之和并输出数列中的各项(要求将数列前20项保存在数组中且不可多存)。

(例如,数列前10项为:

2,3,6,1,8,8,6,4,2,4)

南昌大学05--06学年第二学期C语言程序设计期终试卷答案及评分细则

一、单项选择题(每空2分,共50分

1.C

2.D

3.A

4.C

5.B

6.B

7.C

8.A

9.B

10.A

11.B

12.A

13.D

14.D

15.C

16.C

17.A

18.C

19.A

20.A

21.D

22.D

23.B

24.B

25.B

二、程序阅读题(每小题3分,共18分)

题号

答案:

备注:

1

a+u=22,b+u=-14

数值2分(1个1分)、格式1分

2

11,1

每个1.5分

3

187

每个1分

4

1

12

123

1234

123451

23451

3451

451

51

1

①格式正确且数据正确30%左右给1分、数据正确60%左右给2分;

②数据正确但格式不正确给2分;

③数据60%正确,但格式不正确给1分

5

0

8

每个1.5分

6

6130

每个1分

三、填空题(每空2分,共20分)

题号

答案:

备注:

1

'\n'

'\0'给1分

break;

2

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

或scanf("%d",a+i)

用scanf函数,但没写&运算符给1分

continue

3

s[i]!

='\0'

或s[i]!

=0或s[i]

i

s[j++]=s[i]

或s[j]=s[i],j++

s[j]=s[i],j++各1分

4

inti,s=0

或ints=0,i

①没有赋初值给1分;

②只定义i或s给1分

(i<11)或(i<=10)

5

ch!

='#'

ch!

=#给1分

fputc(ch,fp)

函数正确,但参数不正确给1分

四、编程题(第1小题4分,第2小题8分,共12分)

1.共4分(本题考自定义函数的应用,用主函数完成题目的功能不给分)

voidfun(chars1[],chars2[])

{inti,j=0;

for(i=0;s1[i];i++)0.5分

if(s1[i]>='0'&&s1[i]<='9')1分

s2[j++]=s1[i];1分

s2[j]='\0';1分

puts(s2);输出0.5分(可用循环语句)

}

2.共8分

#include

main()

{intx[20],i,t,s=0,k=0;

x[0]=2;x[1]=3;k=2;

s=x[0]+x[1];

while(k<20)循环控制正确1分

{t=x[k-1]*x[k-2];

if(t<10)

{s+=t;

x[k++]=t;

}

else

{x[k++]=t/10;s+=t/10;

if(k<20)

{x[k++]=t%10;s+=t%10;}

}

}

i=0;

while(i

{

printf("%3d",x[i]);i++;

}

printf("\n%d\n",s);

}

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

当前位置:首页 > 工程科技 > 能源化工

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

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