C程序设计07-08第二学期A卷

更新时间:2023-09-10 18:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(勤奋、求是、创新、奉献)

2007~ 2008学年第 二 学期考查试卷

主考教师:赵毅

学院 ____________ 班级 __________ 姓名 __________ 学号 ____

《程序设计基础(C)》课程试卷A

(本卷考试时间 90 分钟)

题号 一 题分 30 得分 二 15 三 12 四 19 五 24 六 七 八 九 十 总得分 100

试题一 (每空3分,共30分)

解答下列各小题,把答案写在考卷的对应括弧内。

(1)设有int x=3, y=2, z=1; 则表达式 !(x+y)+z-1 && y+z/2的值是【 】。 (2)已知字符A的ACSII码值为65,以下语句的输出结果是【 】。

char ch=’B’;

printf(“%c %d\\n”,ch,ch); (3)写出变量a能被4整除但不能被100整除为真的C语言表达式。

【 】

(4)当a=5,b=3,c=1,d=5时,执行下面一段程序后,x的值为【 】。

if(a>c)

if(b

(5)若有

则执行

int a=8,b=5,c; c=a/b+0.4;

后c的值为【 】。 (6)设有 char str[ ]=\

则执行 printf(\ 后的输出结果为【 】。 (7)下面程序段的运行结果是【 】。

int i, sum=10;

for(i=1;i<=3;i++) sum+=i; printf(“%d\\n”,sum);

(8)执行下面程序段后,输出结果是【 】。

int y=3,x=3,z=1;

第 1 页 共 8 页

printf(“%d %d\\n”,(++x,y++),z+2);

(9)执行下面程序段后,输出结果是【 】。

int a[]={1,3,5,7,9,10,11},*p; p=a+1;

printf(“%d\\n”,*(p+3)+a[5]);

(10)若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是【 】。

A) s->next=NULL; p=p->next; p->next=s; B) p=p->next; s->next=p->next; p->next=s; C) p=p->next; s->next=p; p->next=s;

D) p=(*p).next; (*s).next=(*p).next; (*p).next=s; data next head E F NULL p

s G

试题二:(每题3分,共15分)

阅读下列程序,把程序的输出结果写在旁边括号中。

(1)若从键盘输入45,则以下程序输出的结果是什么? 【 】#include void main(){

int a;

scanf(\if(a>50) printf(\if(a>40) printf(\if(a>30) printf(\}

(2)以下程序运行结果是什么? 【 #include

void main(){ int x=0,y=0,z; while(y<5)

x+=++y;

printf(\ for(y=1;y<5;y++)

x=y; printf(\}

(3)以下程序的执行结果是什么? 【 】

#include void main( ) {

int i=3,j=2;

第 2 页 共 8 页

char *a=\

printf(\,*(a+i),*(a+j)); }

(4)以下程序的执行结果是什么? 【 】

#include

void main() { }

int f(int a,int b) { }

return(a+b); int i=2,p;

int f(int a,int b); p=f(i,i+1); printf(\

(5)以下程序的执行结果是什么? 【 】

#include void main() { int y=19,i=0,j,a[8]; do

{ a[i]=y%2; i++ y=y/2; }while(y>=1); for(j=i-1;j>=0;j--) printf(\

printf(\ }

试题三:(每题6分,共12分)

改错:下述程序(假定所有的变量都已经声明且赋值)有什么错误,请找出来,并将正确内容写在旁边。

(1)本程序从键盘输入一个正整数n,计算n!的值。要求定义和调用函数fact(n),计算

n!。(共有3个错误)

#01 #include #02 void main(void) #03 {

#04 int n; #05 double f;

#06 double fact(int m); #07 printf(\ #08 scanf(\#09 f = fact( );

#10 printf(\#11 }

第 3 页 共 8 页

#12 double fact(int m);

#13 {

#14 int i;

#15 double product;

#16 for ( i = 1; i <= m; i++ ) #17 product = product * i; #18 return product; #19 }

(2)下面的程序用于将计算N个元素组成的整型数组中去掉一个最大值和一个最小值后求

平均值(如果有多个相同的最大值和最小值,只需去掉一个,且要求n>2)。(本题有3个错)

#01 #include #02 #define N 10 #03 void main() #04 {

#05 int a[10],i,sum,max,min; #06 float aver;

#07 for (i=0;i< N;i++) #08 scanf(\#09 sum=0;

#10 max=min=0; #11 for (i=1;i

#13 if (maxa[i]) min=a[i]; #15 sum=sum+a[i];

#16 }

#17 aver=(sum-max-min)/(N-2); #18 printf(\#19 }

试题四:按指定要求编写程序。(第1题9分,第2题10分,共19分)

(1) 输入一个以回车结束的字符串(少于80个字符),将其中的小写字母用下面的对应

大字母替换,其余字符不变,输出替换后的字符串。

原字母 对应字母

a Z b Y

c X d W .....

x C y B z A

第 4 页 共 8 页

(2)读入一个整数,统计并输出该数中5的个数。要求定义并调用函数

countdigit(number,digit),它的功能是统计整数number中digit的个数。例如,countdigit(1309033,3)的返回值是3 。

第 5 页 共 8 页

本文来源:https://www.bwwdw.com/article/4keh.html

Top