C程序设计试卷A卷 2

发布 2021-04-24 21:02:28 阅读 1945

杭州师范大学信息科学与工程学院2007-2008学年第1学期期末考试。

班级: 学号: 姓名:

一、 根据c程序设计的有关概念,判断以下表述的正确性。对的在括号内填上“√”错的填上“×”共10分,每小题1分)

√ 1.若表达式sizeof(int)的值为4,则int类型数据可以表示的最大整数为231-1。

√ 2.在关系运算符(>=中,优先级最低的运算符是“==

√ 3.a是一维数组名,数组元素a[1]还可以用*(a+1)表示。

× 4.若x的当前值为5, 执行语句“if(x=3) x=x+5;”后,x的值依然是5。

× 5.在c 语言程序中,在main()函数中定义的变量称为全局变量。

√ 6.执行循环语句“for(i=1;i<10;i=i+2)s+=i;”后,i的当前值为11。

√ 7.运算符&和&&的区别在于前者实现内码按位“与”运算,后者完成表达式整体“与”运算。

× 8.若打开文件的方式为 ”r” 而该文件已经存在,则文件中原有数据被清空。

√ 9.p为指向字符串 ”hello!” 的指针变量,*p表示字符 ’h’。

√ 10.表达式(15|0)&2 的值是2。

二、单项选择题(最佳选择)(共20分,每小题2分)

1.若已经定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( b )。

a.1b.2c.2.0d.2.5

2.语句:printf("%d",(a=2)&&b=-2));的输出结果是( b )。

a.无输出 b.1c.-1d.结果不确定。

3.c语言以( d )表示逻辑“真”值。

a.trueb.t或yc.数值0 d.非0值。

4.设char s[10];*p=s;以下不正确的是( b )。

a.p=s+5b.s=p+s; c.s[2]=p[4]; d.*p=s[0];

5.假设a和b为int类型,则执行以下语句后b的值为( d )。

a=1; b=10;

dowhile(x!=0);

a.3 2 1b.3c.无输出 d.陷入死循环。

8.若有下列定义:char c[3], p=c;,则对c数组元素地址的正确引用是( b )。

a.&c[3b.p+1c.cd.&c

9.已知:char str1[20]=”abcde”,str2[20]=”xyz”;,则执行下面语句:

printf(”%d”, strlen(strcpy(str1,str2)))输出结果是( b )。

a.9b.3c.5d.8

10.若要为读/写建立一个新的文本文件,在fopen函数中应使用的文件打开方式是( a )。

a.”wb.”rbc.”abd.”wb+”

三、程序填空题(共10分,每小题2.5分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

程序说明】通过函数sumfun求f(0)、f(1)…f(n)的累加和,其中f(x)=x3+1。

程序】#include <>

void main()

printf("the sum=%d",sumfun(10));

int sumfun(int n)

int x, (1) ;

for(x=0;x<=n;x++)

int f(int x)

return (4) ;

供选择的答案】

1) a.s=0b.sc.s=1d.s=x;

2) a.s+=f(xb.s+=fc.s+=f(x)+1; d.s+=f(x*x*x);

3) a.return f; b.return s; c.s+=f(xd.return f(x);

4) a.xb.x3+1c.f(x) d.x*x*x+1

1) a (2) a (3) b (4) d

四、程序阅读题(共20分)

试题1(共10分,每小题2.5分)

阅读下列程序并回答问题。

程序】#include <>

void main()

int i, j, k=0, m=0;

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

m=i+j;

printf(”k=%d, m=%d”, k, m);

1)程序的输出是 (1)_

(2)将第6行改为 “k-- 程序的输出是 __2)__

3)将第6行改为 “;程序的输出是 (3)__

4)将第7行改为 “k=k+j; ”第6行仍为“k++ 程序的输出是 _(4)__

1) k=0, m=5

2) k=-12, m=5

3k=-6, m=5

4k=12, m=5

试题2(共10分,每小题2.5分)

阅读下列程序并回答问题。

程序】#include <>

void main()

int number,count=0;

printf(”please input number:”);

scanf(”%d”,&number);

while (number!=0)

printf(”%3d”,count);

(1) 程序运行时,输入123,输出 (1

2) 程序运行时,输入-99,输出 (2) 。

3) 程序运行时,输入0,输出 (3) 。

(4) 将第8,9,10三行去掉后,程序运行时,输入-123,输出 (4) 。

五、程序(函数)编写题(共40分)

试题1(10分)

编写一个函数mystrcat(str1,str2),将字符串str2连接到字符串str1的后面,要求形参str1和str2用指针实现。

试题2(15分)

编写程序,输入n个整数(定义宏n为10),找出其中的最大值和最小值,并将最大值交换到最前面,将最小值交换到最后面,并输出结果。

试题3 (15分)

编制程序,输入两个3×3矩阵a和b的整型元素值,然后将a和b中相同位置的元素相加到矩阵c中,即矩阵c=a+b,并输出矩阵c(要求按3行3列格式、每个元素占8个字符格位、右对齐输出)。

试题一:答:void mystrcat(char *str1, char *str2)

while (*str1!=’0’)

str1++;

while (*str2!=’0’)

str1++=str2++;

试题二:答:#include""

#define n 10

main()

int max,min,i,t,a[n];

for(i=0;iscanf("%d",&a[i]);

max=a[0];

for(i=1;iif(maxmax=a[i];t=i;}

if(max>a[0])

a[t]=a[0];a[0]=max;}

t=0;min=a[0];

for(i=1;iif(min>a[i])

min=a[i];t=i;}

if(mina[t]=a[n];

a[n]=min;}

for(i=0;iprintf("%4d",a[i]);

试题三:答:#include""

main()

int i,j;

int a[3][3],b[3][3],c[3][3];

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

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

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

C语言程序设计A卷试卷

哈尔滨工业大学 威海 2009 2010学年秋季学期。c语言程序设计笔试试题 a卷 试卷说明 1.笔试卷面总分100分,取卷面成绩的70 计入总分 2.综合成绩为平时成绩 10 和实验成绩 20 之和,占总分的30 3.答题时禁止拆开试卷钉,试卷背面即为草稿纸 4.答题时间120分钟。一 单项选择题...

C程序设计试卷1C程序设计

c 程序设计试卷。一 选择题。每小题3分,共15分 1 派生类能够直接访问的基类的成员是 a 公有成员 b 保护成员 c 私有成员 d 静态。2 下面是几条定义类的语句,不能被继承的类是 a abstract class figure b class figure c public class fi...

C 程序设计试卷C

面向对象的程序设计c 试卷c 一 填空 每空2分,共20分 1 定义于函数外的变量称为。2 假定class1为一个类,则执行 class1 a 5 b 2 p 3 语句时,自动调用该类构造函数的次数为。3 利用操作符 语句序列p p 1 f p 5 的功能可以由一个语句完成。4 不借助于其他变量交换...