C语言程序设计模拟试题A(附答案) 下载本文

while (____ _____) {

fgetc(fp); num++; }

printf(\ fclose(fp); }

15.执行下述程序后,输出结果为_____ _______。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() {

printf(\ }

三、修改程序(在程序出错的语句下划横线并标号,把修改后的语句写在程序之后的横线上。每小题5分,共10分)

1.下列给定程序的功能是:读入一个整数(2<=k<=10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出2、3、5、7、11。

#include #include IsPrime(int n); { int i,m;

m=1;

for ( i=2; i

if !(n%i)

{ m=0; continue; } return (m); } main() { int j,k;

printf(“\\nPlease enter an integer number between 2 and 10000:”);scanf(“%d”,k);

printf(“\\nThe prime factor(s) of %d is (are):”,k); for (j=2;j<=k;j++)

if ((!(k%j))&(IsPrime(j)) printf(“\\nM”,j); printf(“\\n”); }

2.下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串为:aBcdeFgh。

#include #include

void fun(char *p,char *q,char *c); { int k=1; while(*p!=*q)

{ if (*p<*q) c[k]=*q; else c[k]=*p; if (*p) p++; if (*q) q++;

k++; } }

main()

{ char a[10]=“aBCDeFgh”,b[10]=“ABcd”,c[80]={“”}; fun(a,b,c);

printf(“The string a:”); puts(a); printf(“The string b:”); puts (b); printf(“The result:”); puts(c); }

四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。(每小题5分,共20分) 1. #include void main()

{ char ch; int k=0;

for(ch=’A’;ch<’H’;ch++,k++)

if(k%2==0) printf(“%c”,ch);

printf(“\\n”);

}

输出结果: 2. #include void main( ) { int k=0;

char c=’A’; do {

switch (c++)

{case ‘A’: k++; break;

case ‘B’: k--;

case ‘C’: k+=2; break; case ‘D’: k=k%2; break; case ‘E’: k=k*10; break; default: k=k/3; } k++;

} while(c<’G’); printf(“k=%d\\n”, k);

}

输出结果: 3. #include void main() { int

a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++) {

for(j=0;j<6;j++) if(a[i]==b[j])break; if(j<6) printf(“%d”,a[i]); }

printf(“\\n”);

} 输出结果: 4. #include void main()

{ int a[8]={1,0,1,0,1,0,1,0},i;

for(i=2;i<8;i++) a[i]+=a[i-1]+a[i-2]; for(i=0;i<8;i++) printf(“%d”,a[i]);