杭州师范大学信息科学与工程学院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 不借助于其他变量交换...