C程序设计基础-期中考试试题详解(2)

2019-06-11 18:01

注:尽管在函数swap()里,形参x和y的值发生了交换,但根据函数参数的传递原则——“实参向形参单向传值(即x向a赋值,y向b赋值),形参的改变不影响实参”,实参变量a和b的值未发生交换!

2. 下列程序将输出_____。

# include int s;

int f(int m)

{

static int k=0;

for(; k<=m; k++) s++; return s;

}

void main(void ) {

int s=1;

s=f(2)+f(2);

printf(\ return;

}

【解答】输出结果为:6#21# 注:(1)全局变量s的初始值为0;

(2)在f函数中,s是全局变量有效,而在main函数中,s是局部变量有效;

(3)在f函数中,k是静态变量,每次函数f调用结束后,其内存单元和值仍然保留。

3. 若输入:1273 <回车>,以下程序的输出结果是_______。

#include void main(void) { int n, m;

scanf(“%d”, &n); m=0;

while (n>0) {

m=m*10+n; n/=10; }

《C程序设计基础及实验》期中考试试卷, 2012年11月23日 6 / 10

printf(“%d”, m); return;

}

【解答】输出结果是:3721

4. 若输入 -6+15*3/5=<回车> , 以下程序的输出结果是_______。 #include void main() {

int m=0, sum=0; char c, oldc='+';

do {

c=getchar(); if(c<='9'&&c>='0')

m=10*m+c - '0';

else {

if(oldc=='+')

sum += m;

else

sum -= m;

m=0; oldc=c;

printf(\ }

} while(c!='='); return;

}

【解答】0#-6#9#6#1#

程序的意思:对输入的字符串扫描,若碰到数字字符序列,求出相应的整数值m;若碰到其它字符——若字符是+号,则将m值加入到sum中去;若字符不是+号,则将从sum中减去m值。

5. 若输入:how are you? <回车>,以下程序的输出结果是_______。

#include void main(void ) {

int word; char ch;

《C程序设计基础及实验》期中考试试卷, 2012年11月23日 7 / 10

word=0; while((ch=getchar())!='?'){ if(ch==' ') word=0; else if(word==0){ word=1; if(ch<='z'&&ch>='a') ch=ch-'a'+'A'; } putchar(ch); } return; }

【解答】How Are You

该程序思路:碰到一个新单词,则将该单词首字母从小写改为大写,其它字符原样输出。 提示:可借鉴统计单词个数程序的算法。

试题四、程序填空题(每空2分,共30分)

1. 输入正整数n,计算s = 1/1! + 1/2! + 1/3! + ……+ 1/n!的值。 #include void main( void) {

int j, k, n; double f, s;

scanf(\ (1) ; s=0.0 for (k=1 ; k<=n; k++){ (2) ; f=1.0

for(j=1; (3) ; j++) j<=k

(4) ; f=f*j

s=s+1.0/f; }

printf(\ (5) ); s return; }

2. 输入一个整数,统计该数的位数。如:输入12534,输出5;输入-99,输出2;输入0,输出1。

#include void main(void)

《C程序设计基础及实验》期中考试试卷, 2012年11月23日 8 / 10

{

int count=0, number;

scanf(“%d”, (6) ); &number

if (number < 0) number = (7) ; -number do { number = (8) ; number/10 count++;

} while ( (9) ); number!=0 printf(“%d\\n”, count); return;

}

3. 下面程序验证“哥德巴赫猜想”:寻找3到1000间满足“偶数=素数1+素数2”(如10=3+7)的所

有偶数。素数指只能被1和自身整除的正整数,如2,3,17等;1不是素数。 #include void main(void) {

int i, j; (10) ; /*prime()函数声明*/ int prime(int n)

for (i=3 ; i<=500; i++) for (j=2; ; j++) if ( (11) ) { prime(j)==1 && prime(2*i-j)==1 printf(“%d = %d +%d\\n”, 2*i, j, 2*i-j); /*若2*i为两个素数之和 */ break; }

(12) ; return } int prime(int n) /* 判断n是否为素数:是返回1,不是返回0 */ {

int i;

if (n==1)

return (13) ; 0 for (i=2; i<=n/2; i++)

if ( (14) ) n%i==0

return 0;

return (15) ; 1

}

《C程序设计基础及实验》期中考试试卷, 2012年11月23日 9 / 10

C程序设计基础及实验》期中考试试卷, 2012年11月23日10 / 10


C程序设计基础-期中考试试题详解(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:护理学专科大学英语专科(II)习题册答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: