计算机二级C语言考试试题与答案解析4

考试难度:
2人已考
  • 卷面总分:100
  • 试卷类型:模拟试题
  • 测试费用: 免费
  • 关注人数:50
  • 作答时间:120分钟
  • 解析:
关闭
试卷简介:
计算机二级C语言考试试题与答案解析4
试题类型:
  • 程序填空题
  • 程序修改题
  • 程序设计题
试卷预览
  • 程序填空题
  • 程序修改题
  • 程序设计题
1
 使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是计算形参x所指数组中N个数的平均值(规定所有数均为正数),将其作为函数值返回,并将大于平均值的数放在形参y所指数组中,在主函数中输出。 如有10个正数:46、30、32、40、6、17、45、15、48、26,其平均值为30.500000。主函数中输出:4632404548。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序在文件blank1.c中。不得增行或删行,也不得更改程序的结构!试题程序:1 #include < stdlib.h >2 #include < stdio.h >3 #define N104 double fun (double x[ ], double * y)5 { int i, j; double av;6  /********* found ********** /7 av =【1】;8  /********* found ********* /9 for(i=0; i<N;i++)10 av = av +【2】;11 for (i=j=0; i<N; i++)12 /********* found ********* /13  if (x[ i] > av) y[ [ 3 ] ] = x[ i ];14 y[ j ] = - 1 ;15 return av;16 }17 main ()18 { int i; double x[ N] , y[ N];19 for(i=0; i <N;i++)20 { x[i] = rand()% 50;21 printf ("%4 .Of",x[ i] ) ; }22 printf ("\n");23 printf ( " \ nThe average is: % f\n",fun(x,y));24 for(i=0; y[i] >=0; i++)25  printf("% 5.If ",y[i]);26 printf("\n");27 }
2
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,人员的记录由编号和出生年、月、日组成,N名人员的记录已存入主函数的结构体数组std中,且编号唯一。函数fun()的功能是找出指定编号人员的记录,作为函数值返回,由主函数输出,若指定编号不存在,返回记录中的编号为空字符串。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#include <string.h>#define N 8typedef struct{char num[ 10 ];int year,month,day;}STU;/********* found *********/【1】fun(STU * std,char * num){int i;STU a={“ ”,9999,99,99};for (i=0;i
3
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是计算N×N矩阵的主对角线元素和反向对角线元素之和,并将其作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。例如,若N=3,有下列矩阵:首先累加1、5、9,然后累加3、5、7,函数返回值为30。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#define N 4fun (int t[ ][N] , int n){int i,sum;/********* found ********* /【1】;for (i=0;i
4
使用VC ++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是将形参n中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。例如,从主函数输入一个整数27638496,则函数返回值为26846。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>unsigned long fun (unsigned long n){unsigned long x=0,s,i; int t;s=n;/********* found ********* /i=【1】;/********* found ********* /while (【2】) { t=s% 10;if (t% 2==0) {/********* found ********* /x=x+t*i; i=【3】;}s=s/10;}return x;}main 0{unsigned long n=-1;while (n>99999999||n<0){printf (“Please input (0
5
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是调用随机函数产生20个互不相同的整数,并将其放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序在文件blank1.c中。不得增行或删行,也不得更改程序的结构!试题程序:
6
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是计算如下公式前n项的和,并将计算结果作为函数值返回。例如,当形参n的值为10时,函数返回值为9.612558。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>double fun (int n){int i; double s, t;/******** found ******** /s=【1】;/******** found ******** /for(i=l; i<=【2】; i ++ ){t=2.0* i;/******** found ******** /s=s+(2.0*i-1) * (2.0*i+1)/[3];}return s;}void main (){int n=-1;while (n<0){printf(“Please input(n >0):”);scanf (“%d”, &n) ; }printf (“\nThe result is:%f\n”, fun (n));}
1
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是求出如下分数数列的前n项之和。和值通过函数值返回main()函数。例如,若n=5,则应输出8.391667。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件modi1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
2
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是在字符串的最前面加入n个*号,形成新字符串,并覆盖原字符串。字符串的长度最长允许为79。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件modi1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
3
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是将s所指字符串的正序和反序进行连接, 形成的新字符串放在t所指的数组中。例如,当s所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>#include <string.h>/********* found *********/void fun (char s, char t){int i,d;d=strlen(s);for (i=0;i
4
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后4个元素求平均值。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#define SIZE 20fun (double * s, double * w){int k,i; double sum;for (k=2, i=0;i
5
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是求S的值。例如,当k为10时,函数的值应为1.533852。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件modi1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
6
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,已知一个数列从0项开始的前3项:0、0、1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数fun()的功能是计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序的输出结果应为23.197745。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件modi1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
1
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),该函数的功能是使变量h的值保留两位小数,并对第3位进行四舍五入(规定h的值为正数)。若h的值为1234.567,则函数返回1234.570000;若h的值为1234.564,则函数返回1234.560000。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
2
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),它的功能是求小于形参n同时能被3与7整除的所有自然数之和的平方根,并将其作为函数值返回。例如,若n为1000时,程序输出应为s=153.909064。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
3
使用VC ++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n表示x中的元素个数,max存放最大值,index存放最大值所在元素的下标。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <time.h>#include <stdlib.h>#include <stdio.h>void fun (int a[ ] , int n, int * max, int * d){}void main (){int i, x[20], max, index, n=10;srand ((unsigned) time (NULL));for (i=0;i<=n;i++){x[i]=rand()% 50;printf (“% 4d”,x[i]);/*输出一个随机数组*/}printf (n\nH);fun(xf nf &max,&index);printf (“Max=%5d, Index=%4d\n”, max,index);}
4
使用VC ++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0. 0005,则程序应输出为3.140578。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <stdio.h>#include <conio.h>#include <math.h>double fun(double eps){}void main(){double x;printf (“Input eps:”);scanf (“%lf”,&x);printf (“\neps=%lf, PI=%lf\n”, x, fun (x));}