云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 2008年春c语言试题答案

2008年春c语言试题答案

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 8:33:51

(15) 程序运行时,输入1+2*10-10/2=,输出 (15) 。 A、10 B、16 C、15 D、25 (16) 程序运行时,输入1+3*5/2-7=,输出 (16) 。 A、3 B、1 C、-2 D、-3

本题的关键在于要按照程序流程逐步计算,不要看到输入的形式来计算。

试题5(每小题3分,共12分)

阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】

#include #define MAXLEN 80 main( )

{ int k = 0, number = 0; char str[MAXLEN];

while((str[k] = getchar()) != '#') k++;

str[k] = '\\0';

for (k=0; str[k] != '\\0'; k++)

if (str[k]>='0' && str[k]<='9' || str[k]=='A' str[k]=='B')

if(str[k] >= '0'&&str[k] <= '9')

number = number * 12 + str[k] - '0'; else if(str[k] == 'A'||str[k] == 'B')

number = number * 12 + str[k] -'A' + 10; else; /* 第15行 */ else break; /* 第16行 */ printf(\}

(17) 程序运行时,输入10#,输出 (17) 。 A、16 B、10

C、12 D、1

第1次:number = number * 12 + str[k] - '0'; number=0*12+1-‘0’=1

第2次:number = number * 12 + str[k] - '0'; number=1*12+0-‘0’=12

(18) 程序运行时,输入1a0#,输出 (18) 。 A、264 B、10 C、1 D、12

第1次:number = number * 12 + str[k] - '0'; number=0*12+1-‘0’=1

||

第2次没有执行。

(19) 将第16行改为“;”后,程序运行时,输入A*0#,输出 (19) 。 A、0 B、120 C、10 D、12

第1次:number = number * 12 + str[k] -'A' + 10; number=0*12+A-‘A’+10=10

第2次没有执行。

第3次:number = number * 12 + str[k] - '0'; number=10*12+0-‘0’=120

(20) 将第16行改为“else break;”后,删除第15行,程序运行时,输入1b0#,输出 (20) 。

A、10 B、12 C、276 D、1

第1次:number = number * 12 + str[k] - '0'; number=0*12+1-‘0’=1

第2次没有执行。

第3次:number = number * 12 + str[k] - '0'; number=1*12+0-‘0’=12

试题6(每小题3分,共12分)

#include

#include

main( )

{ char *s[2] = {\ while(*s[1] != '\\0'){

printf(\strlen(s[1])-1); s[1]++; } }

(21) 程序运行时,第1行输出 (21) 。

A、**** B、*** C、** D、*

S是一个指针数组。

S[0]指向字符数组”****”,也就是说,

[*] [*] [*] [*] [\\0] ↑ s0

S1指向字符数组”****”,也就是说,

[*] [*] [*] [*] [\\0] ↑ s1

strlen(s[1])计算指针s的长度。

循环第一次时,*s[1]=*, *s[1] != '\\0'为真。 strlen(s[1])=4 strlen(s[1])-1=3

s[0]+strlen(s[1])-1=s[0]+3

这时,s[0]的指针变化为(向后移动指针3位): [*] [*] [*] [*] [\\0]

↑ s0 所以输出的结果是*

(22) 程序运行时,第2行输出 (22) 。

A、**** B、***

C、** D、*

循环第2次时,*s[1]=*, *s[1] != '\\0'为真。

strlen(s[1])=3 (注意:s[1]++;使s[1]的指针后移一位,所以长度减少) strlen(s[1])-1=2

s[0]+strlen(s[1])-1=s[0]+2

这时,s[0]的指针变化为(向后移动指针2位): [*] [*] [*] [*] [\\0]

↑ s0 所以输出的结果是**

(23) 程序运行时,第3行输出 (23) 。

A、**** B、*** C、** D、*

循环第3次时,*s[1]=*, *s[1] != '\\0'为真。

strlen(s[1])=2(注意:s[1]++;使s[1]的指针后移一位,所以长度减少) strlen(s[1])-1=1

s[0]+strlen(s[1])-1=s[0]+1

这时,s[0]的指针变化为(向后移动指针1位): [*] [*] [*] [*] [\\0]

↑ s0 所以输出的结果是***

(24) 程序运行时,第4行输出 (24) 。

A、**** B、*** C、** D、* 同理。

试题7 程序设计题

1) 定义函数fact(n)计算n的阶乘: n! = 1 * 2 * ?? * n,函数返回值类型是double。 2) 定义函数cal(m, n)计算累加和:s??k?m?(m?1)?……?n,函数返回值类型是

k?mndouble。

3) 定义函数main(),输入正整数n,计算并输出下列算式的值。该算式中,每一项的分

子是累加和,要求调用函数cal(m,n)计算?k;每一项的分母是阶乘,要求调用函

k?mn数fact(n)计算n!。 y?1?1?21?2?31?2?……?n ??……?2!3!n!

#include

double fact(int n) /*计算n!*/ {

int k;

double result=1; for (k=1;k<=n;k++) result*=k; return result; }

double cal(int m, int n)/*计算出从m开始累加到n, 计算?k*/

k?mn{

double result=0.0; int k=0;

for(k=m;k<=n;k++)

result=result+k; return result; }

void main() {

int n;

double y=0.0;

scanf(”%d”,&n); for(k=1;k<=n;k++)

{

y=y+1.0*cal(1,k)/fact(k);/* 注意这里的1.0*/ }

printf(”y=%lf\\n”,y);

}

搜索更多关于: 2008年春c语言试题答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

(15) 程序运行时,输入1+2*10-10/2=,输出 (15) 。 A、10 B、16 C、15 D、25 (16) 程序运行时,输入1+3*5/2-7=,输出 (16) 。 A、3 B、1 C、-2 D、-3 本题的关键在于要按照程序流程逐步计算,不要看到输入的形式来计算。 试题5(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】 #include #define MAXLEN 80 main( ) { int k = 0, number = 0; char str[MAXLE

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com