好文档 - 专业文书写作范文服务资料分享网站

合肥工业大学2005-2007年《C语言程序设计》试卷参考答案

天下 分享 时间: 加入收藏 我要投稿 点赞

合肥工业大学2005年《C语言程序设计》试卷参考答案

一、 填空题(20分,每空1分)

1.main( ) 或主函数 2.1 7 3.0 4.0 5.4.5 6.0 7.4 8.一个字符 一串字符 9.6

10.?c? ?\\0? 11.值传递 地址传递 12.12345 1 13.16 10 14.fp = fopen (“file.txt” , ”w”);

二、 选择题(10分,每题1分)

1.D 2.B 3. A 4.B 5.C 6.B 7.C 8.D 9.A 10.B

三、 写出以下程序的运行结果(30分, 每题5分)

1.5, 6, 5, 0 数值每个一分,格式一分。 2.c=1 数值每个两分,格式一分。 d=0.000000

3.hello world! 大写字母变小写每个两分,其余不变1分。 4.b = -10 i = 33, b=0

i = 75, b=33 每个数据包括数据的格式各一分,。 5.6, 45 最小值位置,最小值各一分; 2, 98 最大值位置,最大值各一分; 格式1分

注释:最大值最小值颠倒扣2分。 6.1 3 5 7 9

数据各一分,格式错误扣一分。

四、程序填空(10分, 每空1分)

1. ① ②j<=s ③break

2.④ &a,&b ⑤ int *y ⑥ int t; ⑦ *y=t 3.⑧ iNum=0 ⑨i='a' && str[i]<='z'

五、编程题(30分)

说明:每个语法错误扣0.5,语法错误最多扣两分为止。

1. #include main()

{ float x,y; /*变量定义1分*/ scanf(“%f”, &x); /*输入1分*/ if(x>0)

y=1;

else if(x<0)

y=-1;

else

y=0; /*判断求值2分*/

printf(“x=%f, y=%f”, x,y); /*输出1分*/ }

2.#include main() {

int i,j,a[2][3],k1=0,k2=0,sum1=0,sum2=0; /*变量说明1分*/ for (i=0;i<2;i++) for(j=0;j<3;j++)

scanf(“%d”, &a[i][j]); /*循环输入2分*/ for (i=0;i<2;i++) for(j=0;j<3;j++) if (a[i][j]>0)

{

sum1= sum1+ a[i][j]; k1++; }

else if (a[i][j]<0)

{

sum2= sum2+ a[i][j]; k2++; } /*统计求和3分*/

printf(“k1=%d, k2=%d”, k1,sum1,k2,sum2); /*输出1分*/ } ⒊

#include #include float exps(float); void main( void) {

float x,y; /*变量说明0.5分*/ scanf(“%f”,&x) /*输入0.5分*/ y=(exps(x)+exps(-x))/2 /*函数调用表达式2分*/ printf(“y=%f”,y); /*输出结果1分*/ }

float exps(float x) /*函数结构定义1分*/ {

float s=1,t=1; int i=1;

while( fabs(t)>1e-6) {

t=t*x/i; i++; s+=t; } /*迭代循环2分*/ return s; /*返回结果1分*/ } ⒋

#include #define NUM 45 void main(void) {

int i,j,a[NUM],sum=0; for(i=0;i

{

int t; t=a[i]; a[i]=a[j]; a[j]=t; } for(i=0;i

/*变量说明1分*/ /*循环输入1分*/

/*循环统计2分*/

/*排序算法5分,冒泡、选择都可*/ /*循环输出1分*/

合肥工业大学2006年《C语言程序设计》试卷参考答案

二、 单项选择题(20分,每题1分)

1 6 11 16 一、

A B A B 2 7 12 17 A D D A 3 8 13 18 C A A D 4 9 14 19 D C D D 5 10 15 20 A D D A 填空(10分,每空1分)

1.C语言源程序中主函数名由系统规定为 __main_ ,程序员是不能改变的。 2.有数学表达式:x-3,其C语言表达式为 __sqrt(x)-3 ______。

3.已知函数定义为:int stat(int a , float *p) { ...... } 则此函数的两个参数类型分别是 整形 、 指向浮点型的指针 。

4.设有数组a[10];则首地址可以写成 _a或 &a[0]_ ,

数组元素a[3]的地址可以写成__&a[3]_ 或a+3_ __。

5.要使以下程序段中的函数调用语句printf(“***”);执行10次,应在 ① 处填入整数 __19或20____。

for( i=1;i<=___①___;i+=2 ) printf(“***”);

7.用只读方式打开e:\\20051234目录下的名为 “aa.dat”的文件,正确的打开

语句为FILE *fp;fp=fopen(“e:\\\\20051234\\\\ aa.dat”,”r”); 。

8.判断两个浮点型变量x和y是否相等一般用:

if( fabs(x-y) <1e-6 )? 。

9.已知赋值语句zhang.year =1985;可判断zhang是 结构或联合 类型的变量。

说明:每一个空只有完全正确,得1分。

三、 写出以下程序的运行结果(20分,每题5分)

1. ** ****

****** 3行各1分,每行个数共1分,图形形状1分

2.m1=-16,m2=24 最小数2分,最大数2分,逗号1分(数据颠倒扣2分)

3. 930001 Wang 80.50

930003 Li 95.50 两行记录各2分,格式1分 4. 6

7 两行数据各2分,格式1分

四、 程序设计题(50分)

1.有一分段函数:

2x + 5 (x<=2)

y= 3x - 4 (25) 编程序,输入变量 x的值,计算并输出y的值。(7分) #include

void main(void) --------1分 {

float x,y;/*或int x,y */ --------1分 scanf(“%f”,&x); --------1分 if(x <= 2) y = 2*x+5; else if(x <= 5) y = 3*x-4; else

y = 7; 条件分支3分 printf(“y=%f”,y); --------1分 }

2.由键盘任意输入10个同学的数学成绩,按从高分到低分的顺序排序,并输出排序后的成绩。(9分) #include

void main(void) --------1分 {

int a[10],i,j,t; --------1分 for(i=0;i<10;i++)

scanf(“%d”,&a[i]); --------1分

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

for(j=i+1;j<10;j++) if(a[i]

t=a[i]; a[i]=a[j]; a[j]=t; } 排序算法5分

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

printf(“]”,a[i]); --------1分 }

3.编写程序,通过级数 ? 1 1 1 求?的值,要求精度为10-6 (即某

?1????...4?的值。3(58分)7 项的绝对值小于10-6),输出结果

#include #include

void main(void) --------1分 {

float pi=0,t=1,it=1; int s=1; --------2分 while(fabs(t)>1e-6)

{

pi+=t; it+=2; s=-s; t=s/it; } 级数算法4分 printf(“PI=%f”,4*pi); --------1分 }

4.编写一程序任意输入一串字符,统计其中大写字母的个数,并输出结果。(7分) #include #include

void main(void) --------1分 {

char str[80]; int iCount=0,i; --------1分 gets(str); --------1分 for(i=0;str[i]!=?\\0?;i++)

if(srt[i]>=?A?&&str[i]<= ?Z?)

iCount++; 循环统计3分

printf(“]”,iCount); --------1分 }

5.由键盘任意输入9个整数,组成3行3列的二维数组,统计主对角线上元素的和。(7分) #include

void main(void) --------1分 {

int a[3][3],i,j,sum=0; --------1分 for(i=0;i<3;i++)

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

scanf(“%d”,&a[i][j]); --------2分

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

sum+=a[i][i]; 循环求和2分 printf(“]”,sum); --------1分 }

6.编制子函数,以判断一个整数n是否为素数,如果n是素数,则返回整数1;如果n不是素数,则返回整数0;并在主函数中调用该函数以统计100到200之间的素数的个数。(12分) #include int isPrime(int); --------1分 void main(void) {

int i,iCount=0; --------1分

合肥工业大学2005-2007年《C语言程序设计》试卷参考答案

合肥工业大学2005年《C语言程序设计》试卷参考答案一、填空题(20分,每空1分)1.main()或主函数2.173.04.05.4.56.07.48.一个字符一串字符
推荐度:
点击下载文档文档为doc格式
9n93w94qr99jajr89men
领取福利

微信扫码领取福利

微信扫码分享