C语言习题集合4(数组)

2026/1/27 7:03:32

第四部分 数 组 ·13·

if(flag) printf(\else printf(\}

19. 以下程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

请填空。

#include #include main()

{

char a[]=\

int i, j, k; k=strlen(a);

for(i=0; i<=k-2; i+=2)

for(j=i+2; j<=k; 【1】) if( 【2】 )

{ t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(\ }

20. 输入5个字符串,将其中最小的打印出来。

main() {

char str[10],temp[10]; int i; 【1】;

for(i=0;i<4;i++) {gets(str);

if (strcmp(temp,str)>0) 【2】; }

printf(\}

21. 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不

相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。

#include main( ) {

char str1[100],str2[100],c; int i,s;

printf(\ printf(\ i=0;

while((strl[i]==str2[i]&&(str1[i]!= 【1】)) i++; s= 【2】 ;

printf(\ }

第四部分 数 组 ·14·

22. 设有下列程序:

#include #include main() {

int i;

char str[10], temp[10]; gets(temp);

for (i=0; i<4; i++) { gets(str);

if (strcmp(temp,str)<0) strcpy(temp,str); }

printf(\

}

上述程序运行后,如果从键盘上输入(在此代表回车符): C++ BASIC QuickC Ada Pascal

则程序的输出结果是 ________。

23. 以下程序功能是:统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标

志,请填空。

#include

#include main( ) {

int num[26],i; char c;

for(i=0; i<26; i++) num[i]=0;

while( 【1】 != '#') /*统计从终端输入的大写字母个数*/ if( isupper(c)) num[c-65]+=1;

for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/ if(num[i]) printf(\【2】 , num[i]); }

24. 下面程序段完成功能是:输出两个字符串中对应字符相等的字符。请填空。

char x[ ]= \char y[ ]= \int i=0;

while (x[i]!= 【1】 &&y[i]!= 【2】 )

{ if (x[i]==y[i]) printf(\【3】); else i++; }

25. 下面程序完成功能是:计算一个字符串中子串出现的次数。 #include main()

第四部分 数 组 ·15·

{

int i ,j, k,count;

char str1[20],str2[20]; printf(\gets(str1);

printf(\gets(str2); 【1】;

for(i=0;str1[i];i++)

for(j=i,k=0;str1[j]==str2[k];j++,k++)

if ( 【2】 ) count++;

printf(\}

26. 下面程序完成以下功能:从键盘输入一行字符,统计其中有多少个单词,单词之间用空

格分隔。

#include main() {

char s[81];

int i , c, num=0,word=0;

【1】;

for(i=0;(c=s[i])!=’\\0’;i++)

if(c==32) 【2】;

else if (word==0) {word=1; 【3】;}

printf(\}

27. 下面程序完成功能是:判定用户输入的正整数是否为“回文数”,所谓“回文数”是指正

读反读都相同的数。请填空。 #include main() {

int buffer[10], i,k,flag; long number ,n;

printf(\scanf(\k=0;

n=number; do

{ 【1】 ; k=k+1; n=n/10;

}while (n!=0);

flag=1;

for( i=0;i<=(k-1)/2;i++)

第四部分 数 组 ·16·

if ( 【2】 ) flag=0; if(flag)

printf(\

else printf(\

}

4.3 答案及部分解析

一.选择题答案

1. C 2. D 3. C 4. C 5. C 6. D 7. D 8. A 9. A 10. C 11. D 12. B 13. A 14. B 15. D 16. B 17. C 18. B 19. D 20. C 21. A 22. C 23. D 24. A 25. A 26. B 27. A 28. C 29. C 30. A 31. B 32. D 33. C 34. C 35. C 36. D 37. C 38. D 39. C 40. A 41. C 42. A 43. C 44. A 45. A 46. B 47. D 48. A

11. 解析:程序中的for语句为n[0]和n[1]重新赋了值,但要输出的应该是n[2](n[k])值。 13. 解析:第一个for语句中当k=0时 a1[0]a2[0],

a[1]=2,j值为1;当k=2时,a1[1]a2[1] a[3]=4,j值为2第二个for语句输出a数组。

14. 解析:第一个for循环是为了将0,1,2,3,4,5,6,7,8,9分别赋给a[0]-a[9];

第二个for循环再将a[0],a[2],a[6]的值赋给p[0],p[1],p[2];第三个for循环将3个数组下标变量值*2后累加,结果为16,再和k初值5相加,最终结果为21。

27. 解析:本题考点是关于给数组赋初值时,初值的个数少于数组中元素个数。a数组实际

存储状态是a[0][2]=0,a[1][2]=0,a[2][2]=0.

35. 解析:字符串的最后一个字符应该是结束符’\\0’。

36. 解析:在程序执行语句部分,不允许把字符串赋予一个数组。

40. 解析:函数strcat()是字符串连接。gets()中输入数据时以回车符作为结束符。在纳

入内存时,输入字符串末尾的回车符自动变换成代码‘\\0’,从而使它成为C字符串。它在stdio.h中被定义,输出ss时,遇到“0”停止输出。

47. 解析:本题中strcpy(arr,”you”)函数的功能是将”you” 3个字符分别赋给

arr[0][0]、 arr[0][1] 和a[0][2];strcpy(arr[1],”me”) 函数的功能是将 “me” 分别赋给arr[1][0]和a[1][1]。

二.填空题答案 1. 答案:0 2. 答案:越界

3. 答案:初始化 静态 外部 4. 答案:5 4 3 2 1 5. 答案:【1】&a[i] 【2】i%4==0 【3】printf(\6. 答案:【1】a[i] 【2】i++或++i 【3】b[j] 【4】j++或++j

第四部分 数 组 ·17·

7. 答案:【1】a 【2】a 【3】sum/n 【4】x[i]

8. 答案:【1】2 【2】2 【3】i>=0

解析: 采用辗转相除法进行进制之间的相互转换,将结果存储在一维数组b中,最后显

示其值即可。

9. 答案:【1】&a[i] 【2】i

12. 答案: c[i][j]=a[i][j]+b[i][j]

解析: 使用两个二维数组a和b存放两个3*4阶矩阵的元素值,然后用两重for循环进

行相加求值产生二维数组c,最后显示c的各元素值。

13. 答案:0 1 2 0 1 2 0 1 2 14. 答案:-850,2,0

15. 答案:a=1234 b=5 A或a=1234b=5 16. 答案:Hello

17. 答案:EnglishGood 18. 答案: 【1】 int i,flag 【2】 str[i]=getchar( ) 【3】 str1[i]!=str[i] 19. 答案:【1】 j+=2 【2】 a[i]>a[j]

解析: 外层for循环控制i步长为2,内层for循环控制j步长为2.当i=0时,j=2,a[0]>a[2],

交换c和a;j=4,a[0]a[6], 交换a和c字符;j=8,a[2]a[6], 交换c和g字符;j=8,a[4]a[8], 交换e和g字符;输出”alancuegg”。

20. 答案:【1】 gets(temp) 【2】 strcpy(temp,str) 21. 答案:【1】 '\\0'或0 【2】 strl[i]-str2[i] 22. 答案:QuickC 23. 答案: 【1】 (c=getchar()) 注意,外层括号不得遗漏 【2】 +65 或 +'A' 24. 答案:【1】 '\\0' 【2】 '\\0' 【3】 x[i++] 25. 答案:【1】 count=0 【2】!str2[k+1] 26. 答案:【1】 gets(s) 【2】 word=0 【3】 num++ 27. 答案:【1】 buffer[k]=n 【2】 buffer[i]!=buffer[k-1-i]


C语言习题集合4(数组).doc 将本文的Word文档下载到电脑
搜索更多关于: C语言习题集合4(数组) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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