ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:21.87KB ,
资源ID:1887383      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1887383.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(春季试题.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

春季试题.docx

1、春季试题班号姓名哈工大 2006/2007 年 春 季学期C语言 试题题号一二三四五六七八九创新实践分卷面总分分数说明:本试卷卷面满分为100分。总成绩将按平时实验成绩和卷面笔试成绩各自所占比例折合后累加计算。一、单项选择题:(10分,每题2分)1以下对一维数组的定义中,正确的是: 。A) #define MAX 5 B) int MAX=5; int aMAX; int aMAX;C) int MAX; D) #define MAX 5; Scanf(“%d”,&MAX); int aMAX; int aMAX; 2以下程序运行时输入8,则程序运行后t的值是: 。main() int t;s

2、canf(“%d”,&t);if(t-=8) printf(“%dn”,t-);else printf(“%dn”,t+); A)9 B)8 C)7 D)63有以下程序段main() int i=1,sum=0,n; scanf(“%d”,&n);do i+=2; sum+=i;while(i!=n);printf(%d”,sum);若使程序的输出值为8,则应该从键盘输入的n的值是: 。A) 1 B) 3 C) 5 D) 74若有以下定义及语句:struct s1 char a3; int num;t=a,b,c,4,*p;p=&t;则输出值为c的语句是_。A) printf(“%cn”,p-

3、t.a2);B) printf(“%cn”,(*p).a2);C) printf(“%cn”,p-a3);D) printf(“%cn”,(*p).t.a2);5C语言规定:在一个源程序中,main函数的位置 。 A)必须在程序的最开始 B)必须在系统调用的库函数的后面C)可以任意D)必须在程序的最后 二、写出下列程序的运行结果。(10分,每题2分)1#include main() int i,j; for(i=1; i=1; j-) printf(*“); printf(n“); 运行结果是: 2#include main() int a,b,c; scanf(%2d%2d%*2c%2d,&

4、a,&b,&c); printf(%dn, a+b-c);程序执行时从键盘输入:54457766运行结果是:3#include #include main() char *p=”abcde”,a20=”ABC”,*q=a; p+=3; printf(“%sn”,strcat(q,p);运行结果是:4#include int fun() auto int x=1; static int y=1; x+=2; y+=2; return x+y;main() int a,b; a=fun(); b=fun(); printf(“%d,%dn”,a,b);运行结果是:5#include main()

5、int k=0; char c=A; do switch(c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; continue; case E: k=k*10; break; default: k=k/3; k+; while(cG); printf(“k=%dn”,k);运行结果是: 三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(10分,每空2分)1. 下面这个程序的功能是将字符串s中所有的字符c删除。#include main() char s80; int i

6、,j; printf(Please enter string s:); gets(s); for (i=j=0;_; i+) if(si!=c) _; sj=0; puts(s);2. 以下程序的功能是输出二维数组中最大值所在行内最小元素的值。#include int fun(int a45) int i,j,m=0,n=0,min; for (i=0; i4; i+ ) for(j=0;j5;j+) if(amnaij) _ ; _; _; for(j=1;jamj) min=amj; return min; main() int a45=2,3,6,4,1,25,54,23,28,26,

7、7,9,15,20,35,67,18,30,88,38; int i,j,min; for(i=0;i4;i+) for(j=0;j5;j+) printf(“%3d”,aij); printf(“n”); min=fun(a); printf(“%dn”,min);四、在下面给出的4个程序中,共有15处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。(30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。)1下面程序的功能是对a数组中的元素按从大到小的顺序排序。#include #define N 10; main() int aN=2,17,8,3,24,53,82,1

8、,29,101; int i,j,k,t; for(i=0;i9;i+) k=i; for(j=i+1;j10;j+) if(ajak) k=j; if(k=i) t=aj; aj=ai; ai=t; 2下面程序的功能是交换变量a和b中的值。 #include main() int a,b,*p,*q,*t; p=&a; q=&b; printf(请输入变量a和b的值:); scanf(%d%d, &p,&q); *t=*p; *p=*q; *q=*t printf(交换后a和b的值:a=%d b=%dn,a,b);3假设某袋子中装有3个红球,5个白球,6个黑球,现从该袋子中任意取出8个球,下

9、面程序的功能是输出这8个球中至少有一个白球的所有方案。#include main() int i,j,k; for(i=0;i=3;i+) for(j=0;j=5;j+) k=8-i-j; if(0=k=6) printf(“hong=%dt,bai=%dt, hei=%dtn”,i,j,k); 4以下程序有若干语法错误。#include struct date int y;m;d; struct stu char n10; struct date b; int a;s=“Wang”,1980,11,11,30;main() printf(“%c,%d,%dn”,s.n,s.d,s.a); 五

10、、编程(40分)1.打印如下图案。(12分)* * * * *2. 输入8个整数放入一维数组w中,输出交换前的数组;找出其中最小和最大数,并将他们分别与数组中的第一个元素和最后一个元素交换位置;输出交换后的数组。 (15分)3. 不用标准库函数strcpy,自己编写一个函数MyStrcpy实现将两个字符串复制的功能,然后从键盘输入源字符串,并输出复制后的目的字符串。(13分)参考答案一、单项选择题:(10分,每题2分)1以下对一维数组的定义中,正确的是: A 。A) #define MAX 5 B) int MAX=5; int aMAX; int aMAX;C) int MAX; D) #d

11、efine MAX 5; Scanf(“%d”,&MAX); int aMAX; int aMAX; 2以下程序运行时输入8,则程序运行后t的值是: D 。main() int t;scanf(“%d”,&t);if(t-=8) printf(“%dn”,t-);else printf(“%dn”,t+); A)9 B)8 C)7 D)63有以下程序段main() int i=1,sum=0,n; scanf(“%d”,&n);do i+=2; sum+=i;while(i!=n);printf(%d”,sum);若使程序的输出值为8,则应该从键盘输入的n的值是: C 。A) 1 B) 3 C

12、) 5 D) 74若有以下定义及语句:struct s1 char a3; int num;t=a,b,c,4,*p;p=&t;则输出值为c的语句是_B_。A) printf(“%cn”,p-t.a2);B) printf(“%cn”,(*p).a2);C) printf(“%cn”,p-a3);D) printf(“%cn”,(*p).t.a2);5C语言规定:在一个源程序中,main函数的位置 C 。 A)必须在程序的最开始 B)必须在系统调用的库函数的后面C)可以任意D)必须在程序的最后 二、写出下列程序的运行结果。(10分,每题2分)1#include main() int i,j;

13、for(i=1;i=1;j-) printf(*“); printf(n“); 运行结果是: * * * * * *2#include main() int a,b,c; scanf(%2d%2d%*2c%2d,&a,&b,&c); printf(%dn, a+b-c);程序执行时从键盘输入:54457766运行结果是:333#include main() char *p=”abcde”,a20=”ABC”,*q=a; p+=3; printf(“%sn”,strcat(q,p);运行结果是:ABCde4#include int fun() auto int x=1; static int y

14、=1; x+=2;y+=2; return x+y;main() int a,b; a=fun(); b=fun(); printf(“%d,%dn”,a,b);运行结果是:6,85#include main() int k=0; char c=A; do switch(c+) case A:k+;break; case B:k-; case C:k+=2;break; case D:k=k%2;continue; case E:k=k*10;break; default:k=k/3; k+; while(cG); printf(“k=%dn”,k);运行结果是:k=4三、阅读程序,在标有下划

15、线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(10分,每空2分)1. 下面这个程序的功能是将字符串s中所有的字符c删除。#include main() char s80; int i,j; printf(Please enter string s:); gets(s); for (i=j=0;si!=0; i+) if(si!=c) sj+=si; sj=0; puts(s);2. 以下程序的功能是输出二维数组中最大值所在行内最小元素的值。#include int fun(int a45) int i,j,m=0,n=0,min; for (i=0; i4; i+ ) for(

16、j=0;j5;j+) if(amnaij) m=i; n=j; min=am0; for(j=1;jamj) min=amj; return min; main() int i,j,min; int a45=2,3,6,4,1,25,54,23,28,26, 7,9,15,20,35,67,18,30,88,38; for(i=0;i4;i+) for(j=0;j5;j+) printf(“%3d”,aij); printf(“n”); min=fun(a); printf(“%dn”,min);四、在下面给出的4个程序中,共有15处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。

17、(30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。)1下面程序的功能是对a数组中的元素按从大到小的顺序排序。#include #define N 10; 错!应为: #define N 10main() int aN=2,17,8,3,24,53,82,1,29,101; int i,j,k,t; for(i=0;i9;i+) k=i; for(j=i+1;j10;j+) if(ajak) if(k=i) 错!应为:if(k!=i) t=aj; 错!应为:t=ak; aj=ai; 错!应为:ak=ai; ai=t; 2下面程序的功能是交换变量a和b中的值。 #include ma

18、in() int a,b,*p,*q,*t; 错!应为:t p=&a; q=&b; printf(请输入变量a和b的值:); scanf(%d%d, &p,&q); 错!应为:scanf(%d%d, p,q); *t=*p; 错!应为:t=*p; *p=*q; *q=*t; 错!应为:*q=t; printf(交换后a和b的值:a=%d b=%dn,a,b);3假设某袋子中装有3个红球,5个白球,6个黑球,现从该袋子中任意取出8个球,下面程序的功能是输出这8个球中至少有一个白球的所有方案。#include main() int i,j,k; for(i=0;i=3;i+) for(j=0;j=

19、5;j+) 错!应为:for(j=1;j=5;j+) k=8-i-j; if(0=k=0 & k=6) printf(“hong=%dt,bai=%dt, hei=%dtn”,i,j,k); 4以下程序有若干语法错误。#include struct date int y;m;d; 错!应为:int y,m,d;错!应为:;struct stu char n10; struct date b; int a;s=“Wang”,1980,11,11,30;main() printf(“%c,%d,%dn”,s.n,s.d,s.a); 错!应为:printf(“%s,%d,%dn”,s.n,s.b.d

20、,s.a);五、编程(40分)1.打印如下图案。(12分)* * * * *#include main() int i,j,k; for(i=1;i=5;i+) for(j=1;j=i;j+) printf(“ ”); for(k=1;k=5;k+) printf(“%c”,*); printf(“n”); 2. 输入8个整数放入一维数组w中,输出交换前的数组;找出其中最小和最大数,并将他们分别与数组中的第一个元素和最后一个元素交换位置;输出交换后的数组。 (15分)参考答案1:#include main() int w8,i,min,max,t; printf(请输入8个整型数据:); fo

21、r(i=0;i8;i+) scanf(%d,&wi); printf(交换前的数组:); for(i=0;i8;i+) printf(%dt,wi); printf(n); min=0; for(i=1;i8;i+) if (wiwmin) min=i; t=w0;w0=wmin;wmin=t; printf(交换最小值后的数组:); for(i=0;i8;i+) printf(%dt,wi); max=0; for(i=1;iwmax) max=i; t=w7;w7=wmax;wmax=t; printf(交换最大值后的数组:); for(i=0;i8;i+) printf(%dt,wi);

22、 printf(n);参考答案2:#include main() int w8,i,min,max,t; printf(请输入8个整型数据:); for(i=0;i8;i+) scanf(%d,&wi); printf(交换前的数组:); for(i=0;i8;i+) printf(%dt,wi); printf(n); min=max=0; for(i=1;iwmax) max=i; else if (wiwmin) min=i; t=w7;w7=wmax;wmax=t; if(min=7) min=max; t=w0;w0=wmin;wmin=t; printf(交换后的数组:); for

23、(i=0;i8;i+) printf(%dt,wi); printf(n);参考答案3:#include main() int w8,i,min,max,t; printf(请输入8个整型数据:); for(i=0;i8;i+) scanf(%d,&wi); printf(交换前的数组:); for(i=0;i8;i+) printf(%dt,wi); printf(n); min=max=0; for(i=1;iwmax) max=i; else if (wiwmin) min=i; t=w0;w0=wmin;wmin=t; if(max=0) max=min; t=w7;w7=wmax;wmax=t; printf(交换后的数组:); for(i=0;i8;i+) printf(%dt,wi); printf(n);3. 不用标准库函数strcpy,自己编写一个函数MyStrcpy实现将两个字符串复制的功能,然后从键盘输入源字符串,并输出复制后的目的字符串。(13分)#include #include #define ARR_SIZE 80void MyStrcpy(char dstStr, char srcStr);main() char sARR_SIZE, tARR_SIZE; printf(Please enter source string

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2