《【精编】C语言程序设计_A卷.pdf》由会员分享,可在线阅读,更多相关《【精编】C语言程序设计_A卷.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、哈尔滨工业大学(威海)2007/2008学年秋季学期 C语言程序设计笔试试题(A卷)题号一二三四五六笔试(70%)综合(30%)总分分数试卷说明:1.笔试卷面总分 100分,取卷面成绩的70%计入总分;2.综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3.答题时禁止拆开试卷钉,试卷背面即为草稿纸;4.答题时间 120分钟。一、单项选择题。请把答案填入下面框中,不允许出框线。(本题 16 分,每小题 2 分)题号12345678答案1.以下选项中合法的C语言用户标识符是()。A)long B)_2Test C)3Dmax D)A.dat2.有以下程序main()int a
2、=0,b=0,c=0,d=0;if(a=2)b=2;c=4;else d=3;printf(%d,%d,%d,%dn,a,b,c,d);则程序输出()。A)0,1,2,0 B)0,0,0,3C)1,1,2,0 D)编译有错号学名姓注意行为规范遵守考试纪律3.用语句scanf(“%c%c%c”,&c1,&c2,&c3);输入”a,b,c”时,变量c1、c2、c3的值分别为()。A)a,b,cB)a,b,C)a,b D)a,c4.有以下程序段main()int k=0;while(k=1)k+;则 while 循环执行的次数是()。A)无限次B)有语法错,不能执行C)一次也不执行D)执行 1 次5
3、.有以下程序:#include#include main()char*p=”abc0”;printf(“%d”,strlen(p);执行后的输出结果为()。A)6 B)4 C)12 D)146.设有说明语句:int a=1,b=2,c=3,d=4,m=2,n=2;则执行(m=ab)&(n=cd)后n的值为()。A)1 B)2 C)3 D)47.表达式0 x13&0 x17 和 0 x13|0 x17的值分别是()。A)19,23 B)23,19 C)248,232 D)236,2008.设有以下语句typedef struct TT char c;教研室主任签字:int a4;CIN;则下面叙
4、述中正确的是()。A)可以用TT定义结构体变量B)TT是struct类型的变量C)可以用CIN定义结构体变量D)CIN是struct TT类型的变量二、填空题。请按序号把答案填入下面框中,不允许出框线。(本题 20 分,每空 1 分)题号答案题号答案11121231341451561671781891910201.下面程序的功能是输出二维数组的所有元素值,请完成程序。main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int*p;for(【1】;p 【2】;p+)printf(%dt,*p);2.有以下函数int fun(char*s)char*t=s;w
5、hile(*t+);return(t-s-1);该函数的功能是【3】。3.读入三个浮点数,取出其小数部分分别输出,完成下列程序。void splitfloat(float x,float*fracpart)int intpart=【4】x;*fracpart=x-【5】;main()int i;float x,temp;printf(Enter 3 float point numbers:n);for(i=0;i t2?t2:t1);三、请把下列程序运行结果填入答案框中,不允许出框线,用“”表示回车。(本题 24 分,每小题 3 分)1.#include main()int p=30;prin
6、tf(%dn,(p/30?p/10:p%3);2.#include main()char c1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%cn,c5,c6);程序运行后,若从键盘输入(代表回车换行):135724请把输出结果填入答案框中。题号12345678答案3.#include main()int a=1,b;for(b=1;b=8)break;if(a%2=1)a+=5;continue;a-=3;printf(%dn
7、,b);4.#include main()int a=1,2,3,4,5,6,*p=a;*(p+3)+=2;printf(%d,%d,*p,*(p+3);5.#include char*fun(char*str)return str=fun;main()char*str=ction;printf(%s,%cn,fun(str)+1,*fun(str)+1);6.#include main()char*s=two,three,four,five;char*p=s1;char*q=s3;q+=2;printf(%s,%s,(+p),(q-);7.#include struct st int x;i
8、nt*y;*p;int dt4=10,20,30,40;struct st stMatrix4=50,&dt0,60,&dt1,70,&dt2,80,&dt3;main()p=stMatrix;printf(%d,%d,+(p-x),*(p+2)-y);8.#include main()int a=0,b=2,c=3;switch(a)case 0:switch(b=2)case 1:printf(&);break;case 2:printf(%);break;case 1:switch(c)case 1:printf($);case 2:printf(*);break;default:pri
9、ntf(#);四、根据功能描述改正程序中的错误。不得增行或删行,不得更改程序结构。(本题 10 分)1.要求以下程序的功能是计算1+1/2+1/3+1/10的和。(本小题 4分)#include main()int n;float s;for(n=10;n1;n-)s+=1/n;printf(%6.4fn,s);2.下面函数Squeez()的功能是删除字符串s中所出现的与变量c相同的字符。(本小题 6 分)void Squeez(char s,char c);int i,j;for(i=0,j=0;si!=0;i+)if(si!=c)sj=si;j+;si=0;五、请用标准程序流程图描述下列问
10、题的算法(本题 10 分,每小题 5 分)1.依次从键盘输入10 个不同的整型数据,请查找出这些数据中的最大值和最小值,并指出它们分别是第几次输入的。2.某人身上有人民币50 张,面值分别为 20 元、10 元、5 元和 1 元。请分别统计出这些不同面值人民币的张数并计算出这50 张人民币的总面值来。六、编程题(本题20 分)1.请从键盘输入一个长度为29的字符串,要求分别统计出该字符串中所包含的英文字符、数字字符、空格字符以及其他字符的个数。请写出解决该问题的完整C程序。(本小题6分)2.输入任意长度的字符串str1和子字符串str2(str2的长度要小于str1的长度),请统计出str1中
11、包含有几个子字符串str2,并计算str1中出现最后一个子串str2之前已有多少个字符出现。(本小题8分)3.某数理化三项竞赛训练组有4个人,其中有且仅有一个人的一项成绩不及格(小于60),请找到此人并输出其所有成绩。要求使用指针函数,完成下列程序。(本小题6分)#include int*seek(int )int i,*pnt_col;/*定义一个(列)指针变量 pnt_col*/pnt_col=;for(i=0;i3;i+)if()return(pnt_col);main()int grade43=65,65,75,65,45,85,75,80,90,77,75,95;int i,j,*pointer;for(i=0;i4;i+)pointer=seek(grade+i);if(pointer=*(grade+i)printf(No.%d grade list:,i+1);for(j=0;j3;j+)printf(%d,*(pointer+j);printf(n);break;
限制150内