版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2012级信息学院C语言程序设计试卷(闭卷)1、 判断下列语句或程序的对错。(“×”表示错,“”表示对)(10分) /评分:每小题1分( 1) char ch=55; ( × )( 2 ) unsigned int a=b=c=5; ( × ) ( 3) int a=2,*p; p=&a; printf(”%d”, *&a); ( ) (4) int a55, (*p)5; ( × ) p=&a00;(5) char a=a,c; ( ) c=a+;(6) int n; scanf(”%d”,&n); ( × )
2、 int an; (7) int a10,*p; ( ) p=a+2;(8) int a,b; ( × ) scanf(”%d,%f”,a,b);(9) float a=1,*b=&a,*c=&b; ( × )(10) char str=”World”; ( ) printf(”%c”,*(str+2);二、计算下列表达式的值(10分) /评分:每小题2分 设 int x=3,y=-4,z=4; float k=3.5;(1) x+ - y+ +z ( 12 )(2) y>z|z>2&&x+ ( 1 )(3) x|z&xz
3、 ( 7 )(4) x-y+!z-1&&x+y/2 ( 1 )(5) y+(x/3*(int)(x+k)/2)%4 ( -1 )三、改错,根据题意改正下列程序的错误和漏掉的部分(10分)(1)输入球体半径r,求其体积.#include “stdio.h”; #include “stdio.h” 0.5分define pi=3.1415926; #define pi 3.1415926 0.5分float volume(int r); float volume(float r); 1分void mian() void main() 0.5分 float r,v; scanf(“%
4、d”, r); scanf(“%f”, &r); 0.5分 v= volume(r); printf(“%d”,v); printf(“%f”,v); 0.5分float volume(int r); float volume(float r) 0.5分 v=4/3*pi*r*r*r; v=4.0/3*pi*r*r*r; 1分 return v;(2)利用指针数组对字符数组中的5个姓名字符串排序,字符数组内容不变。.#include <stdio.h> #include <stdio.h> 0.5分 #include <string.h> 0.5分
5、void main() char name520; char* p5; int i; int i,j; 0.5分 char temp20; char *temp; 0.5分 for(i=0;i<=5;i+) for(i=0;i<5;i+) 0.5分 gets(name+i); p=namei; pi=name+i; 或pi=namei 0.5分for(i=0;i<5;i+) for(j=0;j<5;j+) for(j=i+1;j<5;j+) 0.5分 if(pi>pj) if(strcmp(pi,pj)>0) 或if(strcmp(pi,pj)<
6、0) 0.5分 temp=pi;pi=pj;pj=pi;for(i=0;i<5;i+) printf(“%c”,pi); printf(“%s”,pi); 1分4、 程序填空(10分) /评分:每空1分(1)给出年月日,计算出该日是该年的第几天。#include <stdio.h> void main( ) int year, month, day, days, i, d; printf(“请输入年,月,日:”); scanf(“%d%d%d”,
7、60;&year, &month, &day); days=0; for( i=1; i<month ; i+) switch ( i ) case 1: case 3: case 5: case 7: case 8: case 10:
8、case 12: d=31; break ; case 4: case 6: case 9:case 11: d=30; break; case 2: if (year%4=0&&year %100 !=0 | year%400=0) d=29; else d=28; break; days+
9、=d ; printf(“%d年%d月%d日是该年的第%d天n”,year, month ,day, days+day ); (2)将一个指字符串的正序和反序进行连接,形成一个新串放在另一个字符数组 中。例如:当字符串为"ABCD"时,则新字符数组的内容应为"ABCDDCBA"。#include <stdio.h> #include <string.h> void fun (char
10、160;*s, char *t);void main() char S100, T100; printf("nPlease enter string S:"); scanf("%s", S ); fun(S, T); printf("nThe result is: %sn", T); void
11、0;fun (char *s, char *t) int i, d; d = strlen(s) for (i = 0; i<d; i+ ) ti = si; for (i = 0; i<d; i+) ti+d = sd-1-i; t
12、i+d =0 ; 五、写程序输出结果(25分) /评分:每小题5分,根据情况酌情扣分(1)#include <stdio.h>int a = 1;void func()static int x=1;int y=2;x = x+1;a = a+2;y = y+a;printf("func: x=%d, y=%d, a=%dn", x, y, a);void main()static int x = 2;int y;y=a;printf("main: x=%d, y=%d, a=%dn", x, y, a);
13、func();printf("main:x=%d,y=%d, a=%dn" ,x, y ,a);func(); int a ; a= x+y; printf("main:x=%d,y=%d, a=%dn" ,x, y ,a);答案:main: x=2,y=1,a=1func: x=2,y=5,a=3main:x=2,y=1,a=3func:x=3,y=7,a=5main:x=2,y=1,a=3(2)#include "stdio.h"#define M 10void main( ) int aM+1=10,20,30,40,50,60
14、,70,80,90,100; int i,n,*p,*q; n = 45; aM=n; for(p=a,i=0;i<=M;i+) if(n<=*(p+i) p=p+i; break; for(q=a+M-1; q>=p; q-) *(q+1)=*q; *p=n; for(p=a,i=0;i<M+1;i+) printf("%d,",pi); 答案:10,20,30,40,45,50,60,70,80,90,100,(3)#include <string.h>#include <stdio.h>void main()char c
15、h;unsigned int i,j,bit,dit,n;long int a20; char *str = "a123x456_789"for (i=0,j=0,a0=0,bit=1,dit=0; i<strlen(str) ;i+) ch=*(str+i); if(ch>='0'&&ch<='9') aj*=bit; aj+=(ch-48); bit=10; dit=1;n=j; else if (dit=1) j+; aj=0 ; dit=0; bit=1; for (i=0;i<=n;i+) p
16、rintf("a%d=%d,",i,*(a+i); 答案:a 0=123,a1=456,a2=789, (4)#include<stdio.h>struct Key char *keyword; int keyno;void main( ) struct Key kd3 = "are",123,"your",456, "my", 789; struct Key *p; int a; char *str; p = kd;str = p->keyword; printf("str = %sn
17、",str); a = p+->keyno; printf("a = %dn",a); a = p->keyno; printf("a = %dn",a); 答案:str=area=123a=456(5)#include <stdio.h>#include <string.h>struct person char name20; int count;void main() struct person leader3="liu",80,"zhang",30,"w
18、ang",100; char name20 = "wang",m,n; for(n=0;n<3;n+) if(!strcmp(name,) m = leadern.count; break; printf("count=%dn",m); for(n=0;n<3;n+) printf("%s:%dn",,leadern.count);答案:count =100liu:80zhang:30wang:1006、 编写程序(35分)(1)已知四位数a2b3能被23整除,编程
19、求此四位数。(9分)#include<stdio.h> /头文件及主函数框架1分void main() int a,b; /变量定义1分 int num; for(a=1;a<=9;a+) /循环结构3分 for( b=0;b<=9;b+) num = 1000*a+200+10*b+3; /数据合成2分 if(num%23=0) /整除条件1分 printf(“得到满足条件的四位数之一是:%dn”,num); /输出1分(2)一球从100米高度自由落下,每次落地后反弹调回原高度的一半,再落下;求它在第10次落地时,共经过多少米?第10次反弹多高?(9分)#includ
20、e<stdio.h> /头文件及主函数框架1分void main( ) float sn=100.0; /变量定义1分 float hn=sn/2; int n; for( n=1;n<10;n+) /循环语句2分 sn=sn+2*hn; /结合算法2分 hn=hn/2; /递推求求后项2分 printf(“第10次落地时共经过%f米.n”,sn); /输出1分 printf(“第10次反弹%f米.n”,hn);(3) 一个公司,有若干名员工,每名员工有姓名,性别,工龄,工资等信息。编程输入并建立员工档案信息,并要求输出工龄大于10年,工资少于3000元的所有男员工信息。(输
21、入和输出过程用不同函数实现)(9分) #include <stdio.h> #define N 3 struct Employee char name20; char sex; int work_year; int wage; ; /结构定义1分 void input_data(struct Employee *person); void output_data(struct Employee *person); /函数声明1分 void main() /函数及函数调用3分 struct Employee personN; input_data(person); output_da
22、ta(person); void input_data(struct Employee *person) /函数定义2分 for(int i=0;i<N;i+) printf("Name?"); gets(); printf("SEX?"); personi.sex=getchar(); printf("work_year?"); scanf("%d",&personi.work_year); printf("wage?"); scanf("%d&
23、quot;,&personi.wage); getchar(); void output_data(struct Employee *person)/函数定义2分 for(int i=0;i<N;i+) if(personi.sex='0'&&personi.work_year>10&&personi.wage<3000) printf("%st%ct%dt%dn",,personi.sex,personi.work_year,personi.wage); (4)输入一行包含若
24、干单词的字符串,单词之间用空格分开,要求按单词长短从小到大的次序排序后形成新的字符串输出。(假定字符串中单词个数不超过10个,字符串输入并形成单词序列,单词排序,形成新串并输出要求用不同的函数实现)(8分) #include <stdio.h> #include <conio.h> #include <string.h> int input_str(char *str,char (*word_str)100); void sortstr(char (*word_str)100,int num); void output_str(char (*word_str)100,int num);/头文件函数声明1分 void main() /主函数及函数调用2分 char str100;/字符串 char word_str10100;/存放单词的二维数组 int num=input_str(str,word_str); sortstr(word_str,num)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班我爱祖国课程设计
- 大班幼儿教学课程设计
- 大班实验课程设计
- 2024-2025学年新教材高中物理 第十一章 电路及其应用 第三节 第2课时 实验2金属丝电阻率的测量教案 新人教版必修3
- 四年级品德与社会下册 第四单元 通信与生活 4 从看电视说起教案 新人教版
- 2023-2024学年粤教版(2019)高中信息技术必修一《数据与计算》第三章第三节《 计算机程序与程序设计语言》教案
- 二年级体育下册《小皮球 跳跃》教案
- 学会管理自己的消费家政教学设计
- 培优课:三次函数的图象与性质 教学设计-2024-2025学年高二上学期数学苏教版(2019)选择性必修第一册
- 七年级语文上册 20 记 铭 说 志四篇《爱莲说》教案1 长春版
- 互联网使人与人之间距离越来越近 正方辩论材料整理(共16页)
- 旋挖桩全护筒套管施工方案
- 环评咨询服务方案
- ××煤矿井下设备回撤方案及安全技术措施
- DTP药店高端药房冷链操作指导手册罗氏药店验收
- 钢笔字米字格模板
- FusionCube 1000虚拟化技术白皮书
- 锅炉金属壁温安装作业指导书
- 走进神话故事课(课堂PPT)
- 黑龙江省预防接种门诊考核验收标准
- 品质主管工作岗位职责
评论
0/150
提交评论