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

2019-08-03 11:55

if (c= ='\\n')

++n_line;

if (c= =' '||c= ='\\t' ||c= =‘\\n‘)

① ; inword=0 else if (inword= =0) {

② ; inword=1 ++n_word; }

}

printf (\

line=%dword=üharacter=%d\\n\

}

10. 打印出100~1000之间的所有“水仙花数”(“水仙花数”是指一个3位数,

各位数字的立方和等于该数本身。如:153=13+53+33,153就是“水仙花数”)

main( ) {

int i,j,k,n;

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

i=n/100;

j= ① ; n/10-i*10 k=n;

if( ② ) n= =i*i*i+j*j*j+k*k*k printf(―M‖,n); }

}

第六章 数组

一、单项选择题

1. C语言中,引用数组元素时,其数组下标的数据类型允许是( )。C

A)整型常量 B)整型表达式

C)整型常量或整型表达式 D)任何类型的表达式 2. 以下对一维整型数组a的正确说明是( )。D

A)int a(10); B)int n=10,a[n]; C)int n; D)#define size 10 scanf(―%d‖,&n); int a[size]; int a[m]; 3. 若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=‘a‘,d,g; 则数值为4的表达式是( )。D

A)a[g-c] B)a[4] C)a[?d‘-?c‘] D)a[?d‘-c] 4. 以下二维数组a的正确说明是( )。C

A)int a[3][ ]; B)float a(3,4);

31

C)double a[1][4]; D)float a(3)(4); 5. 以下不正确的定义语句是( )。B

A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9};

C)char c1[ ]={?1‘,‘2‘,‘3‘,‘4‘,‘5‘}; D)char c2[ ]={?\\x10‘,‘\\xa‘,‘\\x8‘}; 6. 以下不能对二维数组a进行正确初始化的语句是( )。C

A)int a[2][3]={0}; B)int a[ ][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4}, {5,6}}; D)int a[ ][3]={1,2,3,4,5,6}; 7. 以下程序的输出结果是( )。B a: 0 1 2 3 4 5 6 7 8 9 main( ) i=0 a[0*1]=a[0] { i=1 a[1*2]=a[2] int i,k,a[10],p[3]; i=2 a[2*3]=a[6] k=5; p: 0 2 6 for(i=0;i<10;i++) a[i]=i; i p[i]*2 k=k+ for(i=0;i<3;i++) p[i]=a[i*(i+1)]; 0 0*2=0 5+0=5 for(i=0;i<3;i++) k+=p[i]*2; 1 2*2=4 5+4=9 printf(\ 2 6*2=12 9+12=21 } A)20 B)21 C)22 D) 23 8. 下列程序( C )(每行前的数字表示行号)。

1 main( )

2 { float a[10]={0.0}; int i;

3 for(i=0;i<3;i++) scanf(\ 4 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 5 printf(\ }

A)没有错误 B)第2行有错 C)第3行有错 D)第5行有错 9. 以下程序的输出结果是( )。C

1 2 3 main( )

4 5 6 {

7 8 9 int i,x[3][3]={1,2,3,4,5,6,7,8,9};

i x[i][2-i] for(i=0;i<3;i++)

0 x02=3 printf(\

1 x11=5 }

A)1,5,9, B)1,4,7, C)3,5,7, D)3,6,9, 10. 阅读以下程序

main( ) {

n: 0 0 0 int n[3],i,j,k;

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

i j n[j]=n[i]+1 n[i]=0;

k=2;

0 0 n0=n0+1=1 for(i=0;i

for(j=0;j

0 1 n1=n0+1=1+1=2 n[j]=n[i]+1;

32 1 0 n0=n1+1=2+1=3 1 1 n1=n1+1=2+1=3 printf(\}

上述程序运行后,输出结果是( )。D A)2 B)1 C)0 D)3 11. 以下程序运行后,输出结果是( )。B

main( )

i y a[i]=y%2 i++ y=y/2 {

0 18 a0=0 1 9 int y=18,i=0,j,a[8];

1 9 a1=1 2 4 do

2 4 a2=0 3 2 {

3 2 a3=0 4 1 a[i]=y%2; i++; y=y/2;

4 1 a4=1 5 0 }while(y>=1);

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

printf(\

printf(\ }

A)1000 B)10010 C)0110 D)10100 12. 下面是对字符数组s的初始化,其中不正确的是( )。D

A)char s[5]={―abc‖}; B)char s[5]={?a‘,‘b‘,‘c‘}; C)char s[5]=‖‖; D)char s[5]=‖abcdef‖; 13. 对两个字符数组a和b进行如下初始化:

char a[ ]=‖ABCDEF‖; char b[ ]={?A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘}; 则以下叙述正确的是( )。D

A)a与b数组完全相同 B)a与b长度相同

C)a和b中都存放字符串 D)a数组比b数组长度长 14. 下述对C语言字符数组的描述中错误的是( )。C

A)字符数组可以存放字符;

B)字符数组中的字符串可以整体输入、输出;

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值; D)不可以用关系运算符对字符数组中的字符串进行比较。 15. 能正确进行字符串赋值的是( )。C

A)char s[5]={'a','e','i','o','u'}; B)char s[5]; s=\C)char s[5]=\ D)char s[5]; s[ ]=\16. 不能正确为字符数组输入数据的是( )。A

A)char s[5]; scanf(\,&s); B)char s[5]; scanf(\,s); C)char s[5]; scanf(\,&s[0]); D)char s[5]; gets(s); 17. 下面程序段的运行结果是( )。B

char c[5]={?a‘,‘b‘,‘\\0‘,‘c‘,‘\\0‘}; printf(―%s‖,c);

A)‘a‘‘b‘ B)ab C)ab c D)‖ab‖ 18. 若有char a[80],b[80];则正确的是( )。D

A)puts(a,b); B)printf(\C)putchar(a,b); D)puts(a);puts(b);

19. 若已定义char s[10];在下面表达式中不能表示s[1]的地址的是( )。B

A)s+1 B)s++ C)&s[0]+1 D)&s[1]

33

20. 有以下的程序段:

char a[3],b[ ]=\ a=b;

printf(\ 则( )。C

A)运行后将输出China B)运行后将输出Ch C)编译出错 D)运行后将输出Chi 21. 下面程序段的运行结果是( )。B

char c[ ]=‖\\t\\r\\\\\\0will\\n‖; printf(―%d‖,strlen(c ));

A)14 B)3 C)9 D)字符串中有非法字符,输出值不确定

22. 有以下程序 main( ) {

char s[]=\

printf(\

} 执行后输出结果是( )。 C

A)赋初值的字符串有错 B) 6,7 C)5,6 D)6,6

23. 若已定义char s[2][40]={―china‖,‖English‖};则在下面表达式中能表示字符‘E’的地址的是( )。C

A)&s[2][1] B)&(s[1]+1) C)s[1] D)&s[1] 24. 以下程序的输出是( )。D

main( ) a: 6 9 3 7 { 8 2 5 4 char a[2][5]={\i j s s=10*s+a[i][j]-?0‘ j=j+2 for ( i = 0; i < 2; i++ ) 0 0 0 10*0+a00-48=6 2 for ( j = 0; a[i][j]>'0' && a[i][j]<='9'; j+=2 ) 0 2 6 10*6+a02-48=63 4 s=10*s+a[i][j]-'0'; 0 4 printf(\ 1 0 63 10*63+a10-48=638 2 } 1 2 638 10*638+a12-48=6385 4 A)693825 B)69825 C)63825 D)6385 25. 下面描述正确的是( )。D

A)字符串所包含的字符个数相同时,才能比较字符串 B)字符个数多的字符串比字符个数少的字符串大 C)字符串\ \与\相等 D)字符串“That”小于字符串\

26. 判断字符串a和b是否相等,应当使用( )。D

A)if (a= =b) B)if (a=b) C)if(strcpy(a,b)) D)if(strcmp(a,b)) 27. 下面程序段的运行结果是( )。D

main( ) {

int i,j;

char str[ ]=‖1234567‖,k;

34

for ( i=1,j=strlen(str)-2; i

A)7654321 B)1234567 C)1543267 D)1654327 28. 下面程序段的运行结果是( )。D

main( ) { a:abcdef char a[7]=‖abcdef‖; b:ABC char b[4]=‖ABC‖; a:ABC\\0ef\\0 strcpy(a,b); printf(―%c‖,a[5]); }

A)_ B)\\0 C)e D)f (其中“_”表示空格) 29. 当执行下面程序且输入“ABC”时,输出的结果是( )。A

#include #include

ss:123456789\\0 main( )

ss:ABC\\056789\\0 {

char ss[10]=\

gets(ss); printf(\ }

A)ABC B)ABC9 C)123456ABC D)ABC456789 二、阅读程序写出程序运行结果

1. 上述程序运行后,输出结果是 。3

main( ) {

n:000 int n[3],i,j,k;

i j k n[j]=n[i]+1 for(i=0;i<3;i++) n[i]=0;

0 0 2 n0=n0+1=1 k=2;

1 n1=n0+1=1+1=2 for(i=0;i

1 0 n[0]=n1+1=1+2=3 for(j=0;j

1 n1=n1+1=3 n[j]=n[i]+1;

printf(\}

2. 下面程序段的运行结果是 。he

char x[ ]=‖the teacher‖;

x:the teacher int i=0;

i ++i x[i] x[i-1] prn while (x[++i]!=‘\\0‘)

0 1 x1=h x0=t h if (x[i-1]= =‘t‘)

当前元素不是\\0,前一个元素是t的就打印输出 printf(―%c‖,x[ i ]);

3. 下面程序的运行结果是 。 a a b c d #include main( )

35

str:1234567 i j str[i] str[j]的交换 i++ j-- 1 5 str1 str5 1634527 2 4 2 4 str2 str4 1654327 3 3


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

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

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

马上注册会员

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