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

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 -

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

例如,如果m和n的值分别为10和20,则计算结果为:106。

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

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

int i,s=0;

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

if(i%5!=0 && i%7!=0)

s=s+i;

return s;

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

void main() {

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

printf(\ n:\\n\ scanf(\ %d\ s=fun(m,n);

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); }

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

sum = 1 - 2 + 3 - 4 + 5 - 6 + …… + 99 - 100

#include \ #include \

void main() {

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

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

int i,j=1;

sum=0;

for(i=1;i<=100;i++)

{

sum=sum+i*j;

j=-j;

}

/************end************/ printf(\ NONO(sum); }

void NONO( int x) { FILE *f;

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

- 33 -

12、在考生文件夹下,要求程序PROG.C的功能是: 求两个整数m和n的最大公约数,m和n的值由键盘输入。

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

/***********begin***********/ int t; t=n%m; if(t!=0) fun(n,t); return m;

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

void main() {

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

printf(\ scanf(\ if(m>n) { t=m; m=n; n=t; }

printf(\Highest Common Divisor of %d

and %d is %d\\n\

NONO( ); }

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

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

{ fscanf(fr,\

fprintf(fw,\%d is %d\\n\

fclose(fr); fclose(fw); }

13、在考生目录下,要求程序PROG.C的功能是:将所有的水仙花数保存到一维数组a中。 (所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。

例如:153=1*1*1+5*5*5+3*3*3)

#include void main() {

void NONO( );//函数声明 int a[10]={0},i;

/***********begin***********/ int a,b,c,j=0; for(i=100;i<=999;i++) {c=i; a=i/100; b=(i/10); if(i==a*a*a+b*b*b+c*c*c) {a[j]=i;j++;} }

/************end************/ printf(\水仙花数为:\\n\ for(i=0;i<10;i++)

if(a[i]!=0) printf(\ NONO(a ); }

void NONO(int a[]) { FILE *fw; int i;

fw=fopen(\ for(i=0;i<10;i++)

if(a[i]!=0) fprintf(fw,\ fclose(fw); }

- 34 -

14、在考生文件夹下,要求程序PROG.C的功能是: 求3*3矩阵的最大值并输出。 例如,当矩阵为:

1 2 3 4 9 5 7 8 6 则最大值为:9

#include int fun(int a[3][3]) {

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

int i,j,s=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(s

s=a[i][j]; return s;

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

void main() {

void NONO( );//函数声明 int a[3][3]={1,2,3,4,9,5,7,8,6}; int i,j,max;

printf(\ for(i=0;i<3;i++) {

for(j=0;j<3;j++)

printf(\ printf(\ }

max=fun(a);

printf(\ NONO( ); }

void NONO( ) { FILE *fr,*fw; int i,j,k,m,a[3][3];

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

for(k=0;k<3;k++)

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

15、 在考生文件夹下,要求程序PROG.C的功能是:求一维数组a中所有元素的平均值。 部分源程序存在文件PROG.C中,请将计算结果存入变量av中。

#include \ #define N 20 void main()

{ int a[N]={1,20,8,14,7,12,2,19,19,15,13,14,20,10,16, 20,7,6,12,12 }; double av; FILE *f;

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

int i,s=0;

for(i=0;i<20;i++)

s=s+a[i]; av=s/N;

/************end************/ printf(\

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

- 35 -