如果调用了gets函数,则需要预处理命令 。
9.C语言数组的下标总是从 开始,不可以为负数;构成数组各个元素具有相同的 。 10.字符串是以 为结束标志的一维字符数组。有定义:char a[]=””;则a数组的长度是 。
三.程序阅读题
1.写出下面程序的运行结果。 main ( )
{ int a[6][6],i,j ; for (i=1; i<6 ; i++) for (j=1 ; j<6 ; j++) a[i][j]=(i/j)*(j/i) ; for (i=1;i<6 ; i++) { for (j=1 ; j<6 ; j++)
printf(“-”,a[i][j]) ; printf(“\\n”); } }
2.写出下面程序的运行结果。 main ( ) { int i=0;
char a[ ]=”abm”, b[ ]=”aqid”, c[10]; while (a[i]!=?\\0? && b[i]!=?\\0?) { if (a[i]>=b[i]) c[i]=a[i]-32 ; else c[i]=b[i]-32 ; i++; }
c[i]=?\\0?; puts(c); }
3.当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。 main ( )
{ char s[80]; int i=0; gets(s);
while (s[i]!=?\\0?) {
if (s[i]<=?z? && s[i]>=?a?) s[i]=?z?+?a?-s[i] ; i++; }
puts(s); }
4.写出下面程序的运行结果。 main ( )
{ int i,c;
char s[2][5]={“8980”,”9198”}; for (i=3; i>=0 ; i--) {
c=s[0][i]+s[1][i]-2*?0?; s[0][j] = c % 10 + ?\\0? ; }
for (i=0; i<=1; i++) puts(s[i]); }
5.当运行下面程序时,从键盘上输入7 4 8 9 1 5↙,则写出下面程序的运行结果。 main ( )
{ int a[6],i,j,k,m; for (i=0 ; i<6 ; i++) scanf (“%d”,&a[i]); for (i=5 ; i>=0; i--) { k=a[5];
for (j=4; j>=0; j--) a[j+1]=a[j] ; a[0]=k;
for (m=0 ; m<6 ; m++) printf(“%d ”,a[m]); printf(“\\n”); } }
四.程序判断题
1.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过来。 main ( )
{ int a[3]={3*0} ; int i;
for (i=0; i<4; i++) scanf(“%d”,&a[i]); for (i=0; i<4; i++) printf(“%d”,a[i]); }
2.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过来。 main ( )
{ int a[3]={1,2,3} , i; scanf(“%d%d%d”,&a);
for (i=0; i<3; i++) printf(“%d”,a[i]); }
3.下面程序的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。例如,当s中的字符串为:“ABCDE”时则t中的字符串应为:“EDCBAABCDE”;判断下面程序的正误,如果错误请改正过来。 main ( )
{ char s[80],t[200]; int i,sl ; gets(s); sl = strlen(s);
for (i=0; i 4.下面程序的功能是:将n各无序整数从小到大排序;判断下面程序的正误,如果错误请改正过来。 main ( ) { int a[100], i, j, p, t, n=20 ; for (j = 0; j for ( i=j+1; i { t = a[j]; a[j] = a[p]; a[p]=t; } } for ( j = 0; j 5.下面程序的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2;判断下面程序的正误,如果错误请改正过来。 main ( ) { char substr[80],str[80]; int i,j,k,num=0; gets(substr); gets(str); for (i = 0, str[i], i++) for (j=i,k=0;substr[k]==str[j];k++,j++) if (substr[k+1]!=?\\0?) { num++; break; } printf(“num=%d”, num); } 五.程序填空题 1.下面程序可求出矩阵a的主对角线上的元素之和,请填(2)空使程序完整。 main ( ) { int a[3][3]={1,3,5,7,9,11,13,15,17} , sum=0, i, j ; for (i=0 ; i<3 ; i++) for (j=0 ; j<3 ; j++) if (【1 】) sum=sum+【2 】; printf(“sum=%d”,sum); } 2.下面程序将十进制整数base转换成n进制,请填(3)空使程序完整。 main ( ) { int i,base,n,j,num[20] ; scanf(“%d”,&n); scanf(“%d”,base) ; do { i++; num[i]=【1 】; n=【2 】; } while (n!=0); for (【3 】) ; printf(“%d”,num[j]) ; } 3.下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填(3)空使程序完整。 main ( ) { int a[10],max,min,i,j,k ; for (i=0; i<10; i++) scanf(“%d”,&a[i]); max=min=a[0]; for (i=0; i<10; i++) { if (a[i] 【3 】; for (i=0; i<10; i++) printf(“%d”,a[i]); } 4.下面程序用“插入法”对数组a进行由小到大的排序,请填(3)空使程序完整。 经典算法提示: 简单插入排序算法的基本思想使将数组处理n-1次,第k次处理是将第k个元素插入到目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素a[0],a[1],?,a[k-1]必定已排成了升序,将a[k]与a[k-1],a[k-2],?a[0]逐个比较(由后向前),若有a[j] main ( ) { int a[10]={191,3,6,4,11,7,25,13,89,10} ; int i,j,k ; for (i=1; i<10; i++) { k = a[i] ; j = 【1 】; while (j>=0 && k>a[j] ) { 【2 】; j--; } 【3 】=k ; } for (i=0; i<10; i++) printf(“%d”,a[i]); } 5.下面程序用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序数组,请填(3)空使程序完整。 main ( ) { int a[3]={5,9,10} ; int b[5]={12,24,26,37,48} ; int c[10],i=0,j=0,k=0 ; while (i<3 && i<5) if (【1 】) { c[k]=b[j] ; k++ ; j++ ; } else { c[k]=a[j] ; k++ ; i++ ; } while (【2 】) { { c[k]=a[j] ; i++ ; k++ ; } while (【3 】) { { c[k]=b[j] ; j++ ; k++ ; } for (i=0; i 6.下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的结果保存到b数组中,并按矩阵形式输出a和b,请填(3)空使程序完整。 数组a 数组 main ( ) { int a[2][3]{{4,5,6},{1,2,3}}, b[2][3], i,j; for (i=0; i<2 ; i++) for (j=0; i<3 ; j++ ) { printf(“]”,a[i][j]); 【1 】; } printf(“\\n”); } for (【2 】) b[i][0]=a[i][2]; for (i=0; i<2 ; i++) { for (j=0; i<3 ; j++) { printf(“]”,b[i][j]); 【3 】; } printf(“\\n”); } } 7.下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则输出-1,请填(2)空使程序完整。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C程序设计作业集(7)在线全文阅读。
相关推荐: