第五章单选有以下程序,程序运行后的输出结果是( )#include <stdio.h>#include <string.h>int main(){char a[20]=”ABCD\0EFG\0”,b[]=”IJK”;strcat(a,b); printf(“%s\n”,a);return 0;}A.ABCDE\0FG\0IJKB.ABCDIJKC.EFGIJKD.IJK有以下程序,程序运行后的输出结果是 ( )#include<stdio.h>int main(){ char s[]="012xy\08s34f4w2";int i, n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);return 0;}A.7B.0C.8D.3下列选项中,能够满足"若字符串s1等于字符串s2,则执行ST"要求的是 ( )A.if(strcmp(s2,s1)==0)ST;B.if(s1-s2==0)ST;C.if(strcpy(s1,s2)==1)ST;D.if(s1==s2)ST;以下选项中正确的语句组是()A.char s;s={"BOOK!"};B.char s[];s="BOOK!";C.char s[10];s="BOOK!";D.char s[]="BOOK!";以下数组定义中错误的是()A.int x[2][3]={{1,2},{3,4},{5,6}};B.int x[2][3]={1,2,3,4,5,6};C.int x[][3]={0};D.int x[][3]={{1,2,3},{4,5,6}};若有定义语句:int m[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是()A.m[m[0]]B.m[2*2]C.m[--i]D.m[m[i]]下列选项中,能正确定义数组的语句是()A.int num[];B.int N=2008;int num[N];C.int num[0…2008];D.#define N 2008int num[N];有以下程序,程序运行时若输入:how are you? I am fine<回车>则输出结果是()#include<stdio.h>int main(){ char a[30],b[30];scanf("%s",a);gets(b);printf("%s\n %s\n",a,b);return 0;}A.how are you?I am fineB.how are you? I am fineC.howare you?I am fineD.how are you?下面是有关C语言字符数组的描述,其中错误的是()A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串有以下程序,程序运行后的输出结果是()#include <stdio.h>#include <string.h>int main(){char x[]=”STRING”;x[0]=0;x[1]='\0';x[2]='0';printf(“%d %d\n”,sizeof(x),strlen(x));return 0;}A.7 0B.6 1C.7 1D.6 3若要定义一个具有5个元素的整型数组,以下错误的定义语句是()A.int a[5]={0};B.int b[]={0,0,0,0,0};C.int i=5,d[i];D.int c[2+3];有以下程序,程序运行后的输出结果是 ( )#include<stdio.h>#include<string.h>int main(){ char a[5][10]={“china”,”beijing”,”you”,”tiananmen”,”welcome”}; int i,j; char t[10];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(strcmp(a[i],a[j])>0){ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[i],t);}puts(a[3]);return 0;}A.chinaB.beijingC.welcomeD.tiananmen程序设计/*编写函数int fun(int lim, int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序: */#include<stdio.h>#include<stdlib.h>#define MAX 100int fun(int lim, int aa[MAX]){/**********Begin**********//**********End**********/}int main(){FILE *wf;int limit,i,sum;int aa[MAX];printf("输入一个整数");scanf("%d",&limit);sum=fun(limit,aa);for(i=0;i<sum;i++){if(i%10==0&&i!=0) /*每行输出10个数*/printf("\n ");printf("%5d ",aa[i]);}/******************************/wf=fopen("debug\\2.out","w");sum=fun(15,aa);for(i=0;i<sum;i++)fprintf(wf,"%d\n",aa[i]);fclose(wf);/*****************************/return 0;}【参考代码】int i,j,k=0;for(i=2;i<=lim;i++){for(j=2;j<i;j++)if(i%j==0) break;if(j>=i)aa[k++]=i;}return k;/*请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
例如,若二维数组中的值为1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0则函数值为61。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:*/#include<stdio.h>#include<stdlib.h>#define M 4#define N 5int fun( int a [M][N]){/***************Begin************//*************** End ************/}void main(){FILE *wf;int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,10}};int i, j, y;printf ("The original data is :\n ");for(i=0; i<M;i++){for (j=0; j<N;j++)printf("%6d ",aa[i][j]);printf("\n ");}y=fun(aa);printf("\nThe sun: %d\n ",y);printf("\n ");/******************************/wf=fopen("debug\\out10.dat","w");fprintf (wf,"%d",y);fclose(wf);/*****************************/}【参考代码】int i,j,sum=0;for(i=0;i<M;i++)for(j=0;j<N;j++)if(i==0||i==M-1||j==0||j==N-1)sum=sum+a[i][j];return sum;/*编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:*/#include<stdio.h>#include<string.h>#include<stdlib.h>void fun(char a[][81], int num, char max[]){/***************Begin************//*************** End ************/}void main(){FILE *wf;char ss[10][81],ps[81];char s[3][81]={"abcd","deg","diegns"},p[81];int i=0,n;printf("输入若干个字符串:");gets(ss[i]);puts(ss[i]);while(!strcmp(ss[i], "****")==0) /*用4个星号作为结束输入的标志*/{i++;gets(ss[i]);puts(ss[i]);}n=i;fun(ss,n,ps);printf("\nmax=%s\n",ps);/******************************/wf=fopen("debug\\out15.dat","w");fun(s,3,p);fprintf(wf,"%s",p);fclose(wf);/*****************************/}【参考代码】int i=0;strcpy(max,a[0]);/*找出最长的一个字符串*/for(i=0;i<num;i++)if(strlen(max)<strlen(a[i]))strcpy(max,a[i]);/*请编写一个函数fun,它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。