好文档 - 专业文书写作范文服务资料分享网站

C语言考试题库及答案 

天下 分享 时间: 加入收藏 我要投稿 点赞

9、在考生文件夹下,给定程序FILL.C的功能是:

把数组a(大小为M)中前M-1个元素中的最小值放入a的最后一个元素中

#include #define M 11 void main() { int a[M],i;

for(i=0;i

/************found************/ for(i=1; ___(1)___;i++)

for(i=1;ia[i]) a[M-1]=a[i];

printf(\ }

10、在考生文件夹下,给定程序FILL.C的功能是: 统计一维数组a中素数的个数。

例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13, 则程序的输出应为:prime number(s) is(are): 6。

#include #include #include prinum( int a[]) { int count,i,j,k; count = 0;

for ( i=0; i<10; i++) {

k=a[i]-1;

for ( j=2; j<=k; j++) if (a[i] % j == 0) break;

if(j >= k+1) count++; }

/************found************/ ____(1)____;

return count; }

void main()

{ int a[10]={2,3,5,7,8,9,10,11,12,13},n; /************found************/ n = ____(2)____;

n=prinum(a); printf(\ }

11、在考生文件夹下,给定程序FILL.C的功能是: 求一维数组a中素数之和。

例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17, 则程序的输出应为:Sum is: 58。

#include #include #include void main()

{ int a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s; /************found************/ ___(1)___; s=0; for ( i=0; i<12; i++) {

k=(int)sqrt(a[i]); for ( j=2;j <= k; j++) if (a[i] % j == 0) break; if( j>k )

/************found************/ s=s+__(2)__; s=s+a[i]; }

printf(\ }

12、在考生文件夹下,给定程序FILL.C的功能是: 从键盘上输入两个正整数x,y,求它们的最大公约数。 例如:如果从键盘上输入24,36, 程序的输出应为:max is : 12。

#include #include #include void main() { int x,y,t,i;

printf(\ scanf(\ if(x < y)

/************found************/ {t = x; ____(1)____ ; y = t;} t = x % y; x=y; while( t ) { x = y; y=t;

t = x % y; }

/************found************/ printf(\} printf(\- 26 -

13、在考生文件夹下,给定程序FILL.C的功能是: 求一维数组a中非素数之和。

例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17, 则程序的输出应为:Sum is: 54。

#include #include #include void main()

{ int a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s; /************found************/ ____(1)____; s=0; for ( i=0; i<12; i++) {

k=sqrt(a[i]);

for ( j=2;j <= k; j++) if (a[i] % j == 0) break; if( j<=k )

/************found************/ s=s+____(2)____; s=s+a[i]; }

printf(\}

14、在考生文件夹下,给定程序FILL.C的功能是: 查找n在数组a中最后一次出现的位置(数组首元素的位置为零)。

例如:如果a数组中的元素为:1,5,2,5,6,8,7,4,3,0, 当n=5时,程序的输出结果为:5 is No.3 。

当n=10时,程序的输出结果应为:10 not found !。

#include void main( )

{ int a[10]={1,5,2,5,6,8,7,4,3,0}; int i,k,n,f=0; scanf(\ for(i=0;i<10;i++)

/************found************/ if(___(1)___) if(a[i]==n) { f=1;

/************found************/ ___(2)___; } k=i; if(f)

printf(\ is No. %d\\n\ else

printf(\ }

15、在考生文件夹下,给定程序FILL.C的功能是: 求两个正整数x,y的最大公约数和最小公倍数。 例如:如果x=24,y=36,程序的输出应为: max is : 12 min is : 72 。

#include #include #include void main()

{ int x,y,t,max,min,i,n1,n2;

printf(\ scanf(\ if(x > y)

{t = x; x = y; y = t;} n1=x; n2=y; t = n2 % n1;

/************found************/ while( ____(1)____ ) while(t!=0) {

n2 = n1 ; n1 = t ;

t = n2 % n1; }

/************found************/ max = ____(2)____ ; max=n1; min = x * y / max ;

printf(\ printf(\}

- 27 -

程序设计题(共15题)

1、在考生文件夹下,要求程序PROG.C的功能是: 将字符串中所有的大写字母转换为小写,其它字符不变(不使用转换函数)。

例如,当字符串为\ 输出:\

#include void fun(char str1[]) {

/***********begin***********/ int i=0; while(str1[i]!='\\0') { if (str1[i]>='A' && str1[i]<='Z') str1[i]+=32; else; i++;

} /************end************/ }

void main() {

void NONO( );//函数声明 char str1[80];

printf(\ gets(str1); fun(str1);

printf(\ NONO( ); }

void NONO( ) { FILE *fr,*fw; int i;

char s[80];

fr=fopen(\ fw=fopen(\ for(i=1;i<=2;i++) { fgets(s,80,fr); fun(s);

fprintf(fw,\ fclose(fr); fclose(fw); }

2、在考生文件夹下,要求程序PROG.C的功能是: 求[1,1000]之间既不能被7整除也不能被5整除的整数之和,将结果存入变量s中。

#include \ #include \ #include \ void main() {

void NONO( int y);//函数声明 int s; int i;

/***********begin***********/ s=0; for(i=1;i<=1000;i++) if(i%5!=0 && i%7!=0) s=s+i;

else; /************end************/ printf(\ NONO(s); }

void NONO( int y) { FILE *f;

f=fopen(\ fprintf(f,\ fclose(f); }

- 28 -

3、在考生文件夹下,要求程序PROG.C的功能是: 统计字符串中元音字母’a’、’e’、’i’、’o’、’u’的个数并输出。

例如,当字符串为\ 输出:Result is: 4

#include #include int fun(char str[]) {

/***********begin***********/ int s=0,i=0; while(str[i]!='\\0') { if(str[i]=='a' || str[i]=='e' || str[i]=='i' || str[i]=='o' || str[i]=='u') s++; i++; }

return s; /************end************/ }

void main() {

void NONO( );//函数声明 char str1[80]; int n;

printf(\ gets(str1); n=fun(str1);

printf(\ NONO( ); }

void NONO( ) { FILE *fr,*fw; int i;

char s[80];

fr=fopen(\ fw=fopen(\T\ for(i=1;i<=5;i++) { fgets(s,80,fr);

fprintf(fw,\ }

fclose(fr); fclose(fw); }

4、在考生文件夹下,要求程序PROG.C的功能是: 统计字符串中英文字母的个数并输出。 例如,当字符串为\ 输出:Result is:15

#include #include fun(char str1[]) {

/***********begin***********/ int i=0,s=0; while(str1[i]!='\\0') { if((str1[i]>='a' && str1[i]<='z') || (str1[i]>='A' && str1[i]<='Z')) s++; i++; }

return s; /************end************/ }

void main() {

void NONO( );//函数声明 char str1[80]; int n;

printf(\ gets(str1); n=fun(str1);

printf(\ NONO( ); }

void NONO( ) { FILE *fr,*fw; int i;

char s[80];

fr=fopen(\ fw=fopen(\ for(i=1;i<=5;i++) { fgets(s,80,fr);

fprintf(fw,\ }

fclose(fr); fclose(fw); } - 29 -

5、在考生文件夹下,给定程序PROG.C的功能是: fclose(fr); 求N*N矩阵的第2行(以下标为行数)元素的和并输出。 fclose(fw); 例如,当矩阵为:

} 1 2 3 4

5 6 7 8 9 10 11 12 13 14 15 16

则第2行元素是:9,10,11,12。第2行元素之和为:42 #include #define N 4

int fun(int a[N][N]) {

/***********begin***********/ int s=0,i=0; for(i=0;i

return s; /************end************/ }

void main() {

void NONO( ); //函数声明 int

a[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,sum;

printf(\ for(i=0;i

for(j=0;j

printf(\ printf(\ }

sum=fun(a);

printf(\:%d\\n\ NONO( ); }

void NONO( ) { FILE *fr,*fw; int i,j,x[N][N];

fr=fopen(\ fw=fopen(\T\ for(i=1;i<=5;i++) { for(j=0;j

fscanf(fr,\

fprintf(fw,\ }

- 30 -

7yvte9sx7s5o77k3183e
领取福利

微信扫码领取福利

微信扫码分享