C - C++语言同步习题 - 2007(答案和分析zeng)(8)

2019-08-03 11:55

{

int i=5;

char c[6]=‖abcd‖; do {

c[i]=c[i-1]; }while(--i>0); puts(c);

}

4. 以下程序的输出是 。 fi

main( )

a: a b c {

e f g char a[3][4]={\

h i j int k;

k a[k][1] for(k=1;k<3;k++)

1 a11=f putchar(a[k][1]);

2 a21=i }

5. 以下程序的输出是 。(□表示空格,↙表示回车)AHaMA #include \main( ) {

char a[80],c='h'; int j=0;

scanf(\ a:AhaMA while(a[j]!='\\0')

{ if (a[j]==c ) 判断是否为小写的h

a[j]=a[j]-32; 小写变大写

else if ( a[j]==c-32 ) 判断是否为大写的H

a[j]=a[j]+32; 大写变小写

j++; }

puts(a); }

输入:AhaMA□Aha↙

6. 读下列C程序,若输入字符串Examination,请写出输出结果。

#include main( ) {

char str[20]; int i=0;

int count[2]={ 0}; gets(str); do {

switch(str[i++])

36

c:abcd\\0 i c[i]=c[i-1] --i 5 c5=c4=\\0 abcd\\0\\0 4 4 c4=c3=d abcdd\\0 3 3 c3=c2=c abccd\\0 2 2 c2=c1=b abbcd\\0 1 1 c1=c0=1 aabcd\\0 0

{ case 'a': case 'A':

case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': count[0]++; default: count[1]++; }

} while(str[i]!='\\0');

printf(\

str:Examination\\0 count:0 0 i str[i] count[0]++ count[1]++ i++ 0 str0=E 1 1 1 str1=x 2 2 2 str2=a 1 3 是字母aeio的,count0+1且count1+1 不是的,count1+1 }

程序的输出结果为 。count[0]=6, count[1]=11 7. 以下程序的输出是 。GDABC

#include \main( ) {

char b[30];

strcpy (b,\ b:GH\\0

strcpy (&b[1],\ b:GDEF\\0 strcpy (&b[2],\ b:GDABC\\0

puts(b); }

8. 下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 。

#include How does she main( ) {

char str1[ ]=\

strcpy(str1+strlen(str1)/2,\ str1+6=&str[6]=‘ ? printf(\ str1:How does she }

9. 以下程序的输出是 。LBLMNP

#include \main( ) {

char a[80]=\

j a[j] j++ b[j]=a[j] b int j=0;

0 a0 1 b1=a1=B LBNP\\0 strcat(a,b); a:ABLMNP\\0

1 a1 2 b2=a2=L LBLP\\0 while(a[j++]!='\\0')

2 a2 3 b3=a3=M LBLM\\0 b[j]=a[j];

.........b:LBLMNP\\0 puts(b);

}

10. 以下程序输出的结果是 。FGH

#include KL

37

#include main( )

{

char w[ ][10]={\ for(k=1;k<3;k++)

k=1 w11:FGH printf(\

k=2 w22:KL }

11. 下面程序的运行结果是 。

7078 #include ―stdio.h‖

9198 #define LEN 4

main( ) {

int j,c;

char n[2][LEN+1]={―8980‖,‖9198‖}; for(j=LEN-1;j>=0;j--)

{ c=n[0][j]+n[1][j]-2*‘0‘; n[0][j]=c+‘0‘; }

for(j=0;j<=1;j++) puts(n[j]); }

三、程序填空题

1. 将数字变成所对应的字母,如:198变成字符串‖198‖。

main( ) {

int i=0,t,x; char a[10]; scanf(―%d‖,&x);

while( 错误!未找到引用源。 ) x!=0

{ t=x;

a[i++]= ② ; t+‘0‘ x=x/10; }

for(i=i-1;i>=0;i--)

printf(―%c‖,a[i]);

}

2. 用选择法对数组a[10]={5,7,8,9,0,3,2,1,6,4}由小到大的排序

main( ) {

int i,j,k,t,a[10]= {5,7,8,9,0,3,2,1,6,4}; for(i=0;i<9;i++)

{ ① ; k=i for(j=i+1;j<10;j++) if(a[k]>a[j])

38

w: A B C D\\0 E F G H\\0 I J K L\\0 M N O P\\0

k=j;

if( ② ) i!=k

{ t=a[k];a[k]=a[i];a[i]=t; }

}

for(i=0;i<10;i++)

printf(―M‖,a[i]);

}

3. 有10个人围成一圈,顺序排号,从第一个人开始报数,凡报到3的人退出

圈子,问留下来的是原来的第几号的那位。

main( ) {

int i,k=0,m=0,a[10]; for(i=0;i<10;i++)

a[i]=i+1;

i=0;

while( 错误!未找到引用源。 ) m<9 {

if(a[i]!=0)

k++;

if(k= =3)

{

a[i]=0;

k=0; m++;

} i++;

if(i= =10)

② ; i=0 } i=0;

while(a[i]= =0)

i++;

printf(―M‖,a[i]); }

4. 下面程序功能是检查一个4阶矩阵是否对称(即对所有的i,j,都有

num[i][j]=num[j][i] ,请填空。

#include main( ) {

int num[4][4];

int i, j, flag=0; printf(\ for(i=0; i<4; i++) for(j=0; j<4; j++)

39

scanf(\ 错误!未找到引用源。 ); &num[i][j] for(i=0; i<4; i++) for(j=0; j<4; j++) if( 错误!未找到引用源。 ) num[i][j]!=num[j][i] {

flag=1; break; }

if(flag)

printf(\

else

printf(\

} 参考答案: ① &num[i][j] ②num[i][j]!= num[j][i] 第七章 函数

一、单项选择题

1. 以下函数调用语句中实参的个数是( )。B fun((exp1,exp2), (exp3,exp4,exp5)); A)1 B)2 C)4 D)5 2. 若有以下函数调用语句:

fun(a+b, (x,y), fun(n+k,d,(a,b)));

在此函数调用语句中,实参的个数是( )。A A)3 B)4 C)5 D)6

3. 若有以下调用语句,不正确的fun函数的首部是( )。D

main( ) { ……

int a[50],n; ……

fun(n, &a[9]); …… }

A)void fun(int m, int x[ ]) B)void fun(int s, int h[41]) C)void fun(int p, int *s) D)void fun(int n, int a) 4. 请读下面的程序

#include f(int b[ ], int n) {

int i; int r=1;

for(i=0; i<=n; i++)

r=r*b[i]; 将a数组中的内容累乘1*2*3*4*5*6*7*8*9

40


C - C++语言同步习题 - 2007(答案和分析zeng)(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:反应釜液位控制电路信号变换综合设计课程设计 - 图文

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

马上注册会员

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