《07C语言期末试卷.docx.pdf》由会员分享,可在线阅读,更多相关《07C语言期末试卷.docx.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、杭州电子科技大学学生考试卷(A)卷考试课程课 程 号考生姓名C 语言程序设计上课时间学号(8 位)考试日期2007 年 6 月 日任课教师姓名年级专业成绩说明说明:请将全部答案都书写在最后页答题纸上,否则答题无效。请将全部答案都书写在最后页答题纸上,否则答题无效。试题一、单选题,根据题目从试题一、单选题,根据题目从 A A、B B、C C、D D 中,选择一个正确的选项(共中,选择一个正确的选项(共 1616 分)分)1.有定义 floata=1,z;int b=3;printf(%.2f,a+b/2);的输出值是()。A、1B、2C、2.00D、2.502.判断 char 型变量 c 为数字
2、字符的正确表达式为()。A、0=c=9B、0=c&c=0|c=0&c=90:putchar(A);casex60:putchar(E);B、switch(x)case 1+2:k=A;case 2*4:k=B;C、switch(x)case2+x:k=x-2;case3*x:k=x+3;default:k=0;D、switch(x)case 3.5:k=0.5*x;case 7.8:k=8*x;default:k=0;4.若有 float a=2.5,b=6.3,*pa=&a;*pa*=3;pa=&b;则正确的是()。A、pa 的值是 2.5;B、*pa 的值是 6.3C、*pa 的值是 7.
3、5D、pa 的值是 6.3;5.设 x 和 y 均为 int 型变量,则语句“x+=y;y=xy;x=y;”的功能是()。A、交换 x 和 y 的值B、把 x 和 y 按从大到小排列C、把 x 和 y 按从小到大排列D、无确定结果6.若有 charc1,c2,s=b;连续执行下面语句后,c1,c2 和 s 的输出值应是()。c1=s+;c2=+s;printf(%c,%c,%c,c1,c2,s);A、b,d,dB、b,c,dC、d,e,fD、b,d,b7.若有变量定义 int x=3,*p;,则下面语句不正确的是()。A、p=&(x+1);B、p=&x;C、p=&x+1;D、p=&x,p+;8
4、.下面程序段的输出结果是()。#includevoid fun(int a,int b,int c,int*px,int*py)*px=a;if(*pxb)*px=b;if(*pxc)*px=c;if(ab)*py=a;else*py=b;if(*py=a&ch=a&ch=a&cha&chz)?ch-32:ch;12.下面是关于 break、continue 语句的叙述,其中正确的说法是()。A、break、continue 功能相同B、break 只能出现在循环体中C、continue 只能出现在循环体中D、continue 的功能是跳出循环体13C 语言中,每个字符串的末尾都有一个字符串的
5、结束符,表示字符串的终止。下列哪一个字符是字符串的结束符()。A、nB、0C、tD、-114如果指针 p 指向 x,则*p+表示的是()。A、对指针 p 加 1B、对 p 的对象加 1C、对变量 x 加 1D、对指针 p 和变量 x 各加 115下面各叙述中不正确的是()。A、变量名 sum 和 Sum 代表两个不同的变量。B、若变量已正确定义,表达式 x+y=z 是一个合法的赋值表达式。C、do-while 语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。D、不同类型的变量在内存中占用存储空间的大小不一样。16.char*s=first,second,third;printf(%
6、s,%s,%cn,s0,s1+1,*s2);A、first,second,*thirdB、first,econd+1,*thirdC、first,econd,*tD、first,econd,t试题二、按题目的意思,写出正确的内容。试题二、按题目的意思,写出正确的内容。(共(共 1212 分)分)1 1C 程序中的“真”和“假”是如何表示?2 读程序,回答问题#include#define MAX 7void main()int i,aMAX=5,8,-7,5,3,0,7,c;for(i=0;iMAX;i+)c=ai;/*第 8 行*/ai=aMAX-i-1;aMAX-i-1=c;/*第 10
7、行*/for(i=0;iMAX;i+)printf(“%d”,ai);问题 1.程序运行后的输出结果为是:。问题 2.将 for 循环中的 iMAX 改为 iMAX/2 后,输出结果为:。问题 3.删除第 8 行,将第 10 行 aMAX-i-1=c改为 aMAX-i-1=ai,for 循环中仍然是 iMAX则输出结果为:。3定义一个可以表示日期(年、月、日)的结构体数据类型 date,并用该类型定义一个变量z 同时为变量初始化,初始化年、月、日的值分别2007、6、28。4写出调用函数 g(4)的输出结果。intg(int n)if(n=2|n=1)returnn;elsereturng(n
8、-2)+g(n-1);试题三、读程序写出程序执行结果(共试题三、读程序写出程序执行结果(共 2424 分)分)1.阅读下列程序,并写出程序执行结果。#include int f(int m,int n)int c=0;for(;m!=0;m=m/10)if(m%10=n)c+;return c;void main()printf(%d#,f(30303,0);printf(%d#,f(21212,3);2阅读下列程序,并写程序执行结果。#include void main()int x,i;for(i=1,x=1;i=3;i+)x=x+i;switch(x)case 1:putchar(a);
9、break;case 2:putchar(b);break;case 3:putchar(c);break;case 4:putchar(d);break;default:putchar(e);break;3阅读下列程序,并写出程序执行结果。#include void main()int a=1,b=1;int f(int y,int m,int d);a=f(1976,4,25);printf(#%d#n,a);int f(int y,int m,int d)int k,flag,n;int tab 213=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31
10、,29,31,30,31,30,31,31,30,31,30,31,;flag=y%4=0&y%100!=0|y%400=0;for(n=d,k=1;km;k+)n+=tab flagk;return n;4阅读下面程序,在提供的AD 四个答案中,按提问挑选正确答案。#include void sort(int*a,int n)int i,j,t;for(i=1;i n;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;void main()int i,r,n,a10=4,6,-3,9,0,-4,8,5,1,7;scanf(%d%d,&r,&n);sort(a,10);
11、/*第 13 行*/for(i=0;i 10;i+)printf(%d,ai);(1)程序运行时,输出()。(2)若将 第 13 行 语句 sort(a,10);改为 sort(a+3,7)后;则输出()。(3)若将 第 13 行 语句 sort(a,10);改为 sort(a+5,0)后;则输出()。(4)若将 第 13 行 语句 sort(a,10);改为 sort(&a1,8)后;则输出()。供选择的 AD 四个答案如下:A、4,6,-3,9,0,-4,8,5,1,7,B、4,-4,-3,0,1,5,6,8,9,7,C、4,6,-3,-4,0,1,5,7,8,9,D、-4,-3,0,1,
12、4,5,6,7,8,9,5试题五、程序填空,按程序完成的功能,在划线部分填写适当的内容。试题五、程序填空,按程序完成的功能,在划线部分填写适当的内容。(共共 1818 分分)1程序功能:在数组 a 中已存储 10 个数,输入查找数x,在数组a 中查找 x,如果在数组中找到,则输出它在数组中的下标(元素号),如果没有找到,则输出“Not been found.”#include#define N 10void main()int aN=3,-7,8,23,45,60,78,23,-33,-76,i,x;int flag=0;printf(input x to look for:n);scanf(
13、%d,&x);for(i=0;iN;i+)if(1)printf(find,at:%d n,i);flag=1;if(2)printf(Not been found.n);2程序功能:输入班级 50 个学生的数学成绩,计算平均分并统计高于平均分的人数在屏幕输出,同时将高于平均成绩的分数写到d:tempaa.txt文件中。【程序】#include#define N50void main()float scoreN,sum,ave;FILE*fp;int i,count;fp=fopen(3);printf(请输入学生成绩n);for(i=0,sum=0;iN;i+)scanf(%f,&score
14、i);sum+=scorei;ave=4;5;for(i=0;i=ave)count+;6;printf(平均成绩=%.2f,高于平均分人数=%dn,ave,count);fclose(fp);3 3程序功能:假设 a 数组中数据由小到大顺序存放,以下程序把a 数组中相同的数据删除得3 个数的形式输出 a 数组的数据。【程序】#include#define N 12void main()int aN=3,3,4,4,4,6,9,9,23,23,90,90;int i,j,n;n=N;i=N-1;while(i=0)if(ai=ai-1)只剩一个,然后以每行for(j=i;jn;j+)aj-1=
15、7;n-;8;for(i=0;in;i+)printf(%4d,ai);if(i+1)%3=0)9;试题六试题六编程序编程序(共共 3030 分分)1输入 x,按下式计算 y 值并输出。y x 2x2100 x 8x 3x39x 0或x 82输出所有的“水仙花数”,水仙花数是指一个三位数,其各位数字立方和等于其本身。如:153=13+53+333在主函数中计算 1+1/2!+1/3!1/n!的和并输出。其中 n 的值通过程序输入。要求将计算阶乘的运算定义成函数。2007C 程序设计期末试卷(A)解答试题一、单选题(20 分,每小题 1 分)CBBBA,AABBD,BCAAB,DBDBD试题二、
16、按题目的意思,写出正确的内容(10 分,每小题 2 分)1 非 0 为真,0 为假2(1)18(2)改变,24(该题 2 个问题中的“S 的”应该删除。问题表达不够清楚)。3(1)5875307(2)7035-785 或 703(3)70353074.struct date int x,y,z z=2007,6,28;(成员名可以是其它)或struct date int x,y,z;struct date z;z.x=2007;z.y=6;z.z=28;5.5试题三、读程序写出程序执行结果(每小题5 分)12#0#2.bde3.#116#318#202#4.DCAB试题四、根据程序功能,填空完
17、成程序所规定的功能1scanf(%d,&x);2.ai=x3flag=04.fopen(d:aa.txt,w);5sum/50或 sum/N6count=0;7fprintf(fp,%f,scorei);8.aj-1=aj;9.n-10.if(i+1)%3=0)printf(n);试题五、编程序 1(9 分)、2(10 分)、3(11 分)1#include#includevoid main()float x,y;scanf(%f,&x);if(x=0&x=8)y=x+2*sqrt(x)+10;else y=x-3*pow(x,6)-9;printf(%f,y);2#include#includevoid main()intx,a,b,c;for(x=100;x=999;x+)a=pow(x/100,3);b=pow(x/10%10,3);c=pow(x%10,3);if(a+b+c=x)printf(%d,x);3#include#includevoid main()floats=0;int i,n;float f(int);scanf(%d,&n);for(i=1;i=n;i+)s+=1/f(i);printf(%f,s);float f(int i)float t=1;t*=i;return t;