2012年湖南工业大学C语言考试题目 下载本文

内容发布更新时间 : 2024/5/18 7:09:27星期一 下面是文章的全部内容请认真阅读。

求一维数组a中的最大元素及其下标。

例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9, 程序的输出应为:The max is: 34,pos is: 7 。

源程序文件 #include #include void main()

{ int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos; max = a[0]; pos = 0;

for ( i=1; i<10; i++) /************found************/ if(a[i]>=max) {

/************found************/ max=a[i];

pos =i; }

printf(\ }

程序的功能是计算y = 0! + 1! + 2! + 3! + 4! + …… + n! 如输入5,则输出y值为154 请填空,并运行该程序,然后将源程序文件FILL.C提交。 #include int fun(int n) { int i; int s;

/************found************/ s=1;

for (i=1; i<=n; i++) s=s*i; return s; } main() { int s; int k,n; scanf(\

/************found************/ s=0;

for (k=0; k<=n; k++) s=s+fun(k); printf(\ }

统计字符串中英文字母的个数并输出。 例如,当字符串为\ 输出:Result is:15 #include #include fun(char str1[]) {

/***********begin***********/ int i,t=0;

for(i=0;str1[i]==’\\0’;i++) {

if((str1[i]>=’a’ && str1[i]<=’z’)|| (str1[i]>=’A’ && str1[i]<=’Z’)) t++; } Return t;

/************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); } 20

求 ∑n!(即求:1!+2!+3!+ …… + 20!) n=1

源程序文件 #include #include #include #include void main()

/*************found**************/ {double s,t; int n; s=0;t=1;

/*************found**************/ for(n=1;n<=20;n++) { t=t*n; s=s+t; }

printf(\… +20!=%e\\n\ }

求一维数组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************/ 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+a[i]; }

printf(\ }

按下面的公式求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 I, sum=0; for(i=m;i<=n;i++) {

sum=sum+i; }

return sum;

/************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(\ for(i=1; i<=4; i++)

{ fscanf(fr,\ fprintf(fw,\

fclose(fr); fclose(fw); }

把一个整数转换成字符串,并倒序保存在字符数组str中。 例如:当n=12345678时,str=\。 #include #include #define N 80 char str[N]; void fun( int n) { int i=0;

/************found************/ while(n>0) {

str[i]=n+’0’;

/************found************/ n=n/10; i++; }

str[i]=’.’; } main() {

int n=12345678; printf(\ fun(n);

printf(\ }

求一维数组rea中所有元素的整数部分和小数部分之和。

部分源程序存在文件PROG.C中,请将整数部分之和存入变量sum1中,将小数部分之和存入变量sum2中。 #include \ void main() {

void NONO( int sum1,double sum2);//函数声明

double rea[10]={ 8.95,68.81,43.21,13.55,69.38,56.46,15.52,76.06,82.33,83.17 }; int sum1; double sum2;

/***********begin***********/ int i; sum1=0; sum2=0.0;