高级语言程序设计(一)00342,历年真题,试卷(5)

2019-03-10 17:49

10. 使用语句scanf(″a=%f, b=%f″, &a, &b);输入变量a、b的值(□代表空格),正确的是

( )

A. 1.25,2.4 B. 1.25□2.4 C. a=1.25, b=2.4 D. a=1.25□b=2.4 11. 下列说法中错误的是( ) ..A. C语言中循环嵌套的层数没有限定 B. C语言中的内部函数只能在本文件中被调用 C. 用typedef语句定义的数据类型名称必须是大写字母 D. C语言中的continue语句,可以通过改变程序的结构而省略 12. 设char s[10], *p=s;, 下列语句中错误的是( ) ..A. p=s+5; C. s[2]=p[4];

B. s=P+s; D. *p=s[0];

13. 设enum week {sun, mon, tue, wed, thu, fri, sat}day;,正确的赋值语句是( ) A. sun=0; B. sun=day; C. mon=sun+1;

D. day=sun;

14. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( ) A. 数组的第一个元素值 B. 数组元素的个数 C. 数组中全部元素的值 D. 数组首地址 15. 下列错误的是( ) ..

A. char s[]=″China″; B. char s[10]={″China″}; C. char s[10]; s=″China″;

D. char s[10]={′C′, ′h′, ′i′,;′n′, ′a′};

16. 在C语言中,有值函数的数据类型是指( )

A. 函数形式参数的数据类型 B. 函数返回值的数据类型 C. 调用该函数时的实参的数据类型 D. 任意指定的数据类型 17. 设 struct { short a; char b; float c; }cs;

则sizeof(cs)的值是( )

A. 4 B. 5 C. 6 D. 7 18. 设

int x[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p=x, k;

且0≤k<10, 则对数组元素x[k]的错误引用是( ) ..

第 21 页

A. p+k B. *(x+k) C. x[p-x+k] D. *(&x[k]) 19. 设 #define N 3

#define Y(n) ((N+1)*n)

则表达式2*(N+Y(5+1))的值是( ) A. 42 B. 48 C. 54 D. 出错

20. 关于主函数的形式参数,下列说法正确的是( ) A. 可以有两个 B. 类型可以是实型

C. 不可以由用户自己定义名字 D. 是在程序编译时获得实际值

二、填空题(本大题共10小题,每小题2分,共20分)

21. 可以将被调函数中获得的值返回给主调函数的语句是__________。 22. 设int x=2, y=1;则表达式x+++y的值是__________。

23. 若未指定局部变量的存储类型,则其隐含的存储类型是__________。

24. 在执行循环结构或switch结构时,能够立即退出该结构的语句是__________。 25. 设int a=-3, b=7, c=-1;则执行(a==0)&&(a=a%b

int a[2][3]={1, 2, 3, 4, 5, 6};

则数组元素a[1][0]的值是__________。

30. 函数调用时,若形参是一个变量,而对应的实参是一个有确定值的表达式,则函数参数的传递方式是__________传递。

三、程序分析题(本大题共5小题,每小题5分,共25分) 阅读下列程序,将输出结果写到各题右侧的空白处。 31. mian( ) { int i;

for(i=1;i<3;i++)f(i); } f(int j)

{ static int a=100; int k=1;

第 22 页

++k;

printf(″%d\\n″, j+a+k); a-=2; }

32. #include long fun(int n) { long s; if(n<=2)s=2; else s=n+fun(n-1); printf(″%d\\t″, s); return s; } main( ) { fun(5); printf(″\\n″); } 33. struct porb { char *name; int age;

} s[]={″LiHua″, 18, ″WangXin″, 25, ″LiuGuo″, 21}; #define N (sizeof(s)/sizeof (s[0])) void f (struct porb a[], int n); main( ) { f (s, N); }

void f (struct porb a[], int n) { int i;

for (i=0;i

printf (″%s:%d\\n″, a[i]. name, a[i]. age); }

34. void LE(int*a, int b) {

int x=*a;

第 23 页

printf(″%d\\t%d\\n″, *a, b); *a=b;b=x; } main( ) {

int x=10, y=25; LE(&x, y);

printf(″%d\\t%d\\n″, x, y); }

35. /*设从键盘输入:420<回车> */ #include main( ) { char c;

while ((c=getchar( ) )!=′\\n′) switch(c-′0′) { case 0:

case 1:putchar(c+2); case 2:putchar(c+3);break; case 3:putchar(c+4); default:putchar(c+1);break; }

printf(″\\n″); }

四、程序填充题(本大题共3小题,每小题6分,共18分) 给出下列程序,将横线处缺少的部分补上,使其能正确运行。

36. 一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33), 找出所有的这种数。 main( ) {

int n, a, b, c;/*n、a、b和c分别为三位数自身及其个位、十位和百位 */

for(c=1;c<=9;c++) for (b=0; b<=9;b++)

for(______;a++) /*第一空*/ {

n=_________; /*第二空*/

if(a*a*a+b*b*b+c*c*c==_________) /*第三空*/

第 24 页

printf(″%d\\n″, n); } }

37. 输入一个数字(范围在0~9之间,若不在此范围内显示输入错),输出对应的英文单词(Zero, One, Two, ??,Nine)。 main( ) { int i;

char *digit[10]={″Zero″, ″One″, ″Two″, ″Three″, ″Four″, ″Five″, ″Six″, ″Seven″, ″Eight″, ″Nine″}; scanf(″%d″, _________); /*第一空 */ printf(″%d→″, i);

if(____________) /*第二空 */

printf(″%s\\n″, digit[_________]); /*第三空 */ else printf(″Input error! \\n″); }

38. 将一个文本文件(ma. dat)拷贝到另一个文本文件(niu. dat)中。 #include main( ) {

FILE *ma, *niu;

ma=fopen(″ma. dat″, ______); /*第一空 */ miu=fopen(″niu. dat″, ″w″);

while(! feof(ma)) fputc(fgetc(ma), ________); /*第二空 */ fclose(niu);__________; /*第三空 */ }

五、程序设计题(本大题共3小题,第39小题5分,第40、41小题各6分,共17分)

39. 输入某学生的数学(math)、英语(english)和C语言(C)的成绩,输出该学生这三门课的成绩、总成绩(sum)和平均成绩(aver)。

40. 按下列要求分别写出两个函数(不用写主函数) (1)计算n!

计算公式:n!=1×2×3×??×n 函数首部为log fac(int n) (2)调用上述函数计算Ckmcmk 计算公式: Ckm?m!

k!(m?k)!第 25 页


高级语言程序设计(一)00342,历年真题,试卷(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: