A) ABCD FGH KL B) ABCD EFG IJ M C) EFG JK O D) EFGH IJKL
[D] 教师批改:D
56、下列程序执行后的输出结果是 main() { char arr[2][4];
strcpy(arr,\); strcpy(arr[1],\); arr[0][3]=?&?; printf(\); } A) you&ne B) you C) me D) err
[A] 教师批改:A
57、运行下面的程序,如果从键盘上输入: ab<回车> c <回车> def<回车> 则输出结果为( ) #include
for( ;i for( i=0;i c d A) ab c d A) abcdef [B] 教师批改:C 58、给出以下定义: char x[ ]=\ char y[ ]={?a?,?b?,?c?,?d?,?e?,?f?,?g?}; 则正确的叙述为 A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同 C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度 [B] 教师批改:C 59、设有 static char str[ ]=\ 则执行 printf(\(strcpy(str,\))); 后的输出结果为 A) 5 B) 7 C) 12 D) 14 [C] 教师批改:A 60、请选出以下程序段的输出结果 #include { char sl[10], s2[10], s3[10], s4[10]; scanf(\ puts(s1); puts(s2); puts(s3); puts(s4); } 输入数据如下:(此处 dddd dddd D) aaaa bbbb cccc dddd eeee [D] 教师批改:A 61、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。 main() { int i,a[20],sum,count; sum=count=0; for(i=0;i<20;i++) scanf(\【1】 ); fro(i=0;i<20;i++) { if(a>0) { count++; sum+= 【2】 ; } } printf(\); 教师批改:【1】&a[i] 【2】a[i] 62、若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a[ ]) { int i; for(i=1; i<=10; i++) 【1】=i; for(i=0; i<5; i++) 【2】=a[i]; } 教师批改:【1】a[i-1] 【2】a[9-i] 63、以下程序的输出结果是 【 】 。 main() { int arr[ ]={30,25,20,15,10,5}, *p=arr; p++; printf(“%d\\n”,*(p+3)); } 教师批改:10 64、若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是【 】。 int w[10]={23,54,10,33,47,98,72,80,61}, *p=w; 教师批改:p[5] 65、下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。请填空。 fun(int x,int b[]) { int k=0,r; do { r=x% 【1】; b[k++]=r; x/=【2】; } while(x); } 教师批改:【1】2 【2】2 66、下面的findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。 findmax( int s[], int t) { int k, p; for( p=0, k=p; p 教师批改:k=p 67、以下程序统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请填空。 #include { 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]); } 教师批改:【1】(c=getchar()) 【2】+65 或 +?A? 68、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。 #define N 3 #define M 4 void LineMax(int x[N][M]) { int i,j,p; for(i=0; i for(j=1; j printf(\【2】); } } main( ) { int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1}; 【3】 } 教师批改:【1】sp=j 【2】cx[i][p] 【3】LineMax(x) 69、设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【 】。要求形参名为b。 main( ) { double s[10][22]; int n; ┆ ┆ fun(s); ┆ } 教师批改:void fun(double b[][22])或 void fun(double b[0][22])或 void fun(double (*b)[22]) 70、阅读下列程序: #include { int i, j, row, column,m; static int array[3][3]={{100,200,300}, {28,72,-30}, {-850,2,6} }; m=array[0][0]; for (i=0; i<3; i++) for (j=0; j<3; i++) if (array[i][j] { m=array[i][j]; row=i; column=j;} printf(\); } 上述程序的输出结果是 【 】 。 教师批改:-850,2,0 71、以下程序运行后的输出结果是【 】 #include \ main() { char ch[]=\ for(i=0;i<3;i++) strcpy(x[i],ch); for(i=0;i<3;i++) printf(\); printf(\); } 教师批改:abcbcc 72、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。 #include { char s[80], d[80]; int i, j; gets(s); for(i=j=0; s[i]!=?\\0?; i++) if( 【 】 ) { d[j]=s[i]; j++;} d[j]=?\\0?; puts(d); } 教师批改:s[i]>=?0? && s[i]< =?9? 73、以下程序的输出结果是【 】 。 main() { char s[]=\ s[3]=?\\0?; printf(\); } 教师批改:abc 74、以下程序运行后的输出结果是 【 】 。 main() { char s[ ]=“9876”,*p; for ( p=s ; p 教师批改:9876 876 75、若有定义语句: char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) while([i]){ d[j]= 【 】;j++;} d[j]=0; 教师批改:s[i++] 76、下列程序段的输出结果是 【 】 。 main() { char b[]=”Hello,you”; b[5]=0; printf(“%s \\n”, b ); } 教师批改:Hello 77、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。 #include { 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(\); } 教师批改:【1】j+=2 【2】a[i]>a[j] 78、下列程序中字符串中各单词之间有一个空格,则程序的输出结果是【 】 。 #include main( ) { char strl[]=\, *p1=strl; strcpy(strl+strlen(strl)/2,\); printf(\,pl); } 教师批改:How des she 79、若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【 】 : . char a[10],b; scanf(\); : . 教师批改:a=1234 b=5 A或a=1234b=5 80、函数fun的功能是:使一个字符串按逆序存放,请填空 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<【1】;i++,j--) { m=str[i]; str[i]=【2】; str[j-1]=m; } printf(\); } 教师批改:【1】strlen(str )/2 【2】str[j-1]或*(str+j-1) 81、以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。 #include\ #include\ main() { char str[81],*sptr; int i; for(i=0;i<80;i++) { str[i]=getchar(); if(str[i]==?\\n?) break; } str[i]=【1】; sptr=str; while(*sptr) putchar(*sptr【2】); } 教师批改:【1】?\\0? 或0 【2】++ 82、以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例 如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。 #include main() { char str[100],str2[100],c; int i,s; printf(\); gest(str1); printf(\); gest(str2); i=0; while((strl[i]==str2[i]&&(str1[i]!=【1】)) i++; s=【2】; printf(\); } 教师批改:【1】?\\0?或0 【2】strl[i]-str2[i] 83、以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。 #include. main() { char b[16]={?0?,?1?,?2?,?3?,?4?,?5?,?6?,?7?,?8?,?9?,?A?,?B?,?C? ,?D?,?E?,?F?}; int c[64],d,i=0,base; long n; printf(\); scanf(\); printf(\); scanf(\); do { c[i]=【1】; i++; n=n/base; } while(n!=0); printf(\); for(--i;i>=0;--i) { d=c[i]; printf(\【2】; } } 教师批改:【1】nose 【2】[d] 84、(36) 已知函数isalpha(ch)的功能是判断自变量ch是否是字母,若是,函数值为1,否则为0。下面程序的输出是 【 】 。 #include for(i=0, j=0; str[i]; i++) if(isalpha(str[i])) str[j++]=str[i]; str[j]=?\\0?; } main() { char ss[80]=\ fun4(ss); printf( ?%s\\n\); } 教师批改:It is 85、下面invert函数的功能是将一个字符串str的内容颠倒过来。请填空。 #include for(i=0,j=strlen(str) 【2】 ; i 教师批改:【1】k 【2】-1 86、设有下列程序: #include char str[10], temp[10]; gets(temp); for (i=0; i<4; i++) { gets(str); if (strcmp(temp,str)<0) strcpy(temp,str); } printf(\); } 上述程序运行后,如果从键盘上输入(在此 则程序的输出结果是 【 】 。 教师批改:QuickC 87、以下程序运行后的输出结果是 【 】 。 main() { int p[7]={11,13,14,15,16,17,18}; int i=0,j=0; while(i<7 && p[i]%2==1) j+=p[i++]; printf(\); } 教师批改:24 88、以下程序运行后的输出结果是 【 】 main() { int i, n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf(“%d”,n[i]); } } 教师批改:1 3 7 15 89、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。 main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf(\:\\n\);scanf(\,&a); while(a>=0.0&& n<1000) { sum+ 【1】 ; x[n]= 【2】 ; n++; scanf(\,&a); } ave= 【3】 ; printf(\:\\n\); printf(\,ave); for (I=0;I if(【4】) printf (“%f\\n”,x[I]); } 教师批改:【1】=a 【2】a 【3】sum/n 【4】x[i] { fun1( ); fun2( a ); printf(\);} fun1( ) { int k, t=0; for (k=0; k<MAX; K++,t++) a[k]=t+t; } fun2(int b[]) { int k; for(k=0; k<NAX; k++) printf(\(b+K)); } 教师批改:024 91、下面程序的输出是 【 】 。 main( ) { int arr[10],i,k=0; for( i=0; i<10; i++) arr[i]=i; for( i=1; i<4; i++)