大学c语言机期未试考题_大学c语言试题及答案

2020-02-28 其他范文 下载本文

大学c语言机期未试考题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“大学c语言试题及答案”。

1#####

在考生文件夹下的给定程序modi53.c中,函数fun的功能是:将从键盘上输入的每个单词的第一个字母写为大写字母,输入时各单词必须用空格隔开,用'.'结束输入。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include

int fun(char *c,int status){ /************found************/

if(c==' ')return 1;

else

{

if(status && *c='a')/************found************/

c+='A'-'a';

return 0;

} }

main(){

int flag=1;

char ch;

printf(“请输入一字符串,用点号结束输入!n”);

do

{

ch=getchar();

flag=fun(&ch,flag);

putchar(ch);

}while(ch!='.');

printf(“n”);} 第1 处内容填写有误

第[1]处操作错误

题面要求操作:内容为[if(*c==' ')return 1;]

实际操作结果:内容为[if(c=='')return1;] 第2 处内容填写有误

第[2]处操作错误

题面要求操作:内容为[*c+='A'-'a';]

实际操作结果:内容为[c+='A'-'a';]

2##### 请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。

例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。

注意:要求n的值大于2但不大于100。

部分源程序在考生文件夹下的文件prog192.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句

#include #include double fun(int n){

} main(){ int n;

double sum;

printf(“nnInput n: ”);scanf(“%d”,&n);

sum=fun(n);

printf(“nnsum=%fnn”,sum);

NONO();} NONO(){/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/

FILE *rf, *wf;int n, i;double s;

rf = fopen(“bc192.in”, “r”);

wf = fopen(“bc192.out”, “w”);

for(i = 0;i

fscanf(rf, “%d”, &n);

s = fun(n);

fprintf(wf, “%lfn”, s);

}

fclose(rf);fclose(wf);}

本题的考核点是查找素数的算法以及开根函数的应用。

解题思路:从3到指定数n,找出所有的素数,素数的判断方法是:只能被1和其自身整除,而不能被其它任何数整除的数;sqrt(x)函数是计算x的平方根。

#include #include double fun(int n){ int i,j=0;/*定义两个整型变量*/ double s=0;/*定义变量s为双精度型*/

for(i=3;i

{ for(j=2;j

if(i%j==0)break;

/*如果i能被j整除就说明i不是素数,继而退出循环体*/

if(j==i)s=s+sqrt(i);/*sqrt(i)函数是计算i的平方根*/

}

return s;/*返回结果*/

3#

给定程序的功能是求k!(k

例如:若k = 10,则应输出:3628800。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的blank20.c中。

不得增行或删行,也不得更改程序的结构!#include long fun(int

k){ /************found************/

if(k>0)/************found************/

return(k*fun(___2___));/************found************/

else if(k==0)

return 1L;}

main(){ int k = 10;

printf(“%d!=%ldn”, k, fun(k));}

本题主要考查的是函数的递归调用。

题中第一个空填“>”:此处为递归调用结束的条件。

题中第二个空填“k-1”:此处为递归调用时返回给调用函数的实参值。

题中第三个空填“==”:此处判断k是否为0,若是则将值返回给主函数。

本评析仅供参考。

4在考生文件夹下的给定程序modi31.c中,函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #define N 5 #define M 81 /************found************/ fun(char(*sq)[N]){int i;char *sp;sp=sq[0];for(i=0;i

if(strlen(sp)

sp=sq[i];/************found************/ return sq;} main(){char str[N][M],*longest;int i;printf(“Enter %d lines :n”,N);for(i=0;i

程序中的重要思想如下:

1、建立了一个二维字符串数组,用于存放用户输入的6个字符串;

2、建立了一个指针数组,目的是用6个指针分别指向6个字符串;

3、函数fun()的形参只有一个,即指针数组pstr[],这表明要想在函数fun()中对6个字符串进行操作,只能通过pstr[]中的6个指针。

题中第一个空填“*(pstr+j)”:观察源程序可以发现,在程序中使用strcmp()函数是为了判断字符串str[i]与str[i+1]两者的大小,在fun()函数中只能通过指针来表达各个字符串,所以应当填“*(pstr+j)”。

题中第二个空填“pstr[j]”:对两个字符进行比较后,若pstr[i]中的字符比pstr[j]中的字符大,则将pstr[j]中的字符赋给pstr[i]。

题中第三个空填“p”:对两个字符进行比较后,若pstr[i]中的字符比pstr[j]中的字符大,则将pstr[j]和pstr[i]的内容进行交换。

5请编写函数fun,其功能是:计算并输出下列多项式的值:

S=(1─)+…+(──1]);"。

《大学c语言机期未试考题.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
大学c语言机期未试考题
点击下载文档
相关专题 大学c语言试题及答案 大学 考题 语言 大学c语言试题及答案 大学 考题 语言
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文