北京工业大学C语言部分练习答案 下载本文

练习1 分支

1. 若从键盘输入58,则以下程序段的输出结果是(58 58 58): int main(void) { int a; scanf(“%d”,&a); if (a>50) printf(“%d”,a); if(a>40) printf(“%d”,a); if(a>30) printf(“%d”,a); return 0; }

2. 下列程序运行的输出结果是(9):没有遇到break语句,继续执行到switch语句结束 int main(void) {

char c=’b’; int k=4;

switch(c) { case ‘a’: k=k+1; break; case ‘b’: k=k+2; case ‘c’: k=k+3; }

printf(“%d\\n”,k); return 0; }

练习2 循环

一、读程序写结果

1. 阅读下列程序并回答问题: main() { inti,j,k=0,m=0; for(i=0;i<2;i++) { ; /*第6行*/ for(j=0;j<3;j++) k++; m++; /*第9行*/ }

printf(“k=%d,m=%d\\n”,k,m); }

(1) 程序的输出是___k=6,m=2___________。

(2) 将第9行改为“m=m+k;“ ,程序的输出是____k=6,m=9_________。 (3) 将第6行改为“k=0;”,将第9行改为“m=m+k;”,程序的输出是

________k=3,m=6____________。

2. 请阅读下面的程序,并回答下列问题 #include int main() {

int digit=0,letter=0, other=0; charch; printf(\do {

ch = getchar();

if((ch>= 'a' &&ch<= 'z' ) || ( ch>= 'A' &&ch<= 'Z'))

letter ++; else if(ch>= '0' &&ch<= '9') digit ++;

else

other ++;

}while(ch!='\\n');

printf(\}

(1) 若在程序运行时输入 Today_is_2013/12/28<回车>

letter=7, digit=8, other=5 (2) 简述程序的主要功能:

统计输入字符串中字母数字和其他字符的个数。

3. 请阅读下面的程序,并回答下列问题

#include void main() {

int count, i, n,num; double average, total; printf(\scanf(\ count = 0;

for(i = 1; i<= n; i++){ scanf (\

if(num%2==0) count++; }

printf(\}

(1) 若在程序运行时输入:

5<回车> 8<回车> 6<回车> 9<回车> 4<回车> 7<回车> 运行结果是:3

(2) 简述程序的主要功能:

统计输入的数字中偶数的个数

4. 请阅读下面的程序,并回答下列问题 #include int main(void) { charch; inti;

for(i=1;i<=5;i++) { ch=getchar();

if(ch>='a'&&ch<='y') ch=ch+1; else if(ch=='z') ch='a'; putchar(ch); } return 0; }

(1) 若在程序运行时输入size5<回车>,输出结果是: tjaf5

(2) 简述程序的主要功能:

对字符加密,a到y的向后推一位,z变成a,其他不变。

二、填空题

1. 下面程序的功能是计算100~1000之间有多少个数其各位数字之和是5. #include void main() {

inti,s,k,count=0;

for(i=100; i<=1000;i++) {

s=0;k=i;

while(_____k!=0___________)

{

s=s+k;

k=____k/10____________; }

if(s==5) count++; }

printf(\}

2. 下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最

大数。

#include void main() {

intn,count=0,max=0,t; scanf(\ do{

t=___n_____________; if(t==0) count ++;

else if(max0);

printf(\}

练习3 函数

一 . 阅读程序

1.

#include int fun(int n) { inti,sum = 0 ;