C语言考试题库及答案(1) 下载本文

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(\T\ 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 -

6、在考生文件夹下,要求程序PROG.C的功能是: 求字符串的长度并输出。

例如,当字符串1为\ 则应输出:Result is: 19

#include int fun(char str[]) {

/***********begin***********/ int i=0; while(str[i]!='\\0') { i++; }

return i; /************end************/ }

void main() {

void NONO( ); //函数声明

char str1[80]=\ int count;

printf(\ count=fun(str1);

printf(\ NONO( ); }

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

char s1[80];

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

fprintf(fw,\ }

fclose(fr); fclose(fw); }

7、在考生文件夹下,要求程序PROG.C的功能是: 求[m,n]之间所有不能被3整除的整数之和,m,n的值由键盘输入。

例如,如果输入3和12,则输出结果为:45

#include \ int fun(int m,int n) {

/***********begin***********/

int i=0,s=0;

for(i=m;i<=n;i++)

if(1%3!==0)

s=s+i; return s;

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

void main( ) {

void NONO( ); //函数声明 int m,n;

printf(\ scanf(\ printf(\ NONO( ); }

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

fr=fopen(\ fw=fopen(\ for(i=1;i<=5;i++)

{ fscanf(fr,\

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

- 31 -

8、在考生文件夹下,给定程序PROG.C的功能是: 按下面的公式求sum的值。

sum = m + (m+1) + (m+2) + (m+3) + …… + (n-1) + n 例如,如果m和n的值分别为1和100,则计算结果为5050。

#include \ int fun( int m, int n) {

/***********begin***********/ int s=0,i=0; for(i=m;i<=n;i++) s=s+i; return s;

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

void main() {

void NONO( );//函数声明 int m, n, t;

printf(\请输入m,n:\\n\ scanf(\ if(m>n)

{ t=m; m=n; n=t; }

printf(\ NONO( ); }

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

fr = fopen(\ fw = fopen(\T\ for(i=1; i<=4; i++)

{ fscanf(fr,\

fprintf(fw,\ fclose(fr); fclose(fw); } 9、在考生文件夹下,要求程序PROG.C的功能是: 将字符串逆序存放并输出。

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

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

/***********begin***********/ int i=0,j; char str2[80]; while(str1[i]!='\\0') {str2[i]=str1[i]; i++;} for(j=0;j

/************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<=5;i++) { fscanf(fr,\ fun(s);

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

- 32 -