C语言试卷

发布 2021-04-23 12:03:28 阅读 5237

2024年上海市高等学校计算机等级考试试卷。

二级 (c程序设计)

本试卷答卷时间为120分钟)

试题一(28分,每小题4分)

解答下列各小题,把解答写在答卷纸的对应栏内。

1) 试写出下列命题的c语言表达式。

当字符变量m取英文字母时表达式的值为真。

2) 执行下述语句后,a,b,m,n变量的值分别是什么?

int a=1, b=2, c=3, d=4, m=5, n=6;

a = m=a>b ) n =c>d ) a = b--;

3) 执行下列语句后的输出结果是什么?

char s[81]= a_string", t[81];

strcpy(t,s);

printf("%d;%d%s", sizeof(s), strlen(s), t+2);

4) 写出下列c语句的功能。

#include <>

do gets(s);

while (strcmp(s,"passwd"))

5) 执行下列程序后的输出结果是什么?

#define sqr(x) x*x

void main( )

int s=8, a=2, b=3;

s=sqr(a+b)*4;

printf(“s=%d”, s);

6) 设有定义 struct date, *p;

p = a[2];

printf("+p)= d", p));

printf("*p=%d", p

printf("*p++=d", p

printf("%d",a[0]);

试写出执行该程序段后的输出结果。

试题二(12分,每小题6分)

阅读下列程序, 把程序的输出结果写在答卷纸的对应栏内。

1)【程序2.1】

#include <>

void main( )

int k[ ]

int j, m1=32767, m2=0,n1, n2;

for (j=0; j<6; j++)

if (m1>k[j])

else if (m2

printf("m1=%d, n1=%d ",m1, n1);

printf("m2=%d, n2=%d ",m2, n2);

2)【程序2.2】

#include <>

void func(int *x,int y)

static k=3;

y=*x+y;

*x=y%k;

k++;printf("*x=%d,y=%d",*x,y);

void main()

int x=12,y=5;

func(&x,y);

printf("x1=%d,y1=%d",x,y);

func(&y,x);

printf("x2=%d,y2=%d",x,y);

试题三 (12分,每小题6分)

下列程序中都有三个错误,按题中的计算要求,纠正错误,并以“将#xx”行改为“yyyy”的形式进行解答,把解答写在答卷纸的对应栏内。**左边的#1、#2、…是附加的行号。

1) 用冒泡排序法求出由21个整数组成的数组的中间值,并输出所有大于中间值的偶数。

程序3.1】

##include <>

#1 void main()

#2) 用下面的方法可以计算y年m月d日是星期几(w):

w= [y-1 + y-1)/4 – y-1)/100 +(y-1)/400 + y_d(y, m, d)]%7

其中,符号 / 表示计算整数商,% 表示计算余数,y_d(y, m, d)表示y年m月d日是从同年元旦算起到该日的总天数。

程序3.2】

#1 int day_tab[ ]

#2 int y_d(int y, int m, int d)

#9 void main( )

试题四 (18分, 每小题9分)

按指定的要求编写程序段, 把解答写在答卷纸的对应栏内。

1)输入无符号整型范围内的整数,求出它的位数以及各位数字之和。

2)将长度为 n 的字符串 s 分成两个子串,前 m(任意值)个字符生成子串s1,后 n-m个字符生成子串s2。约定:当m≥n时,s1等于原串,s2为空串;当m≤0时,s1为空串,s2等于原串。

编写程序段时,可以使用库函数strcpy。

试题五(15分,每个空格3分)

阅读下列问题描述和相应的程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。

问题描述】

本程序运行时,从键盘不断接收用户输入的字符串并进行处理,直到用户输入的字符串为“end”时终止。对用户输入的每个字符串的处理是:将字符串内的每一个十进制数字字符置换成下列**中右边所对应的一个字符串(所有其他字符不变),然后将转换的结果显示在屏幕上;并分别计算每个数字的置换次数。

例如,若用户输入的字符串为。

page112-line3,则程序5的输出是:

page(one) (one) (two)-line(three)

数字0到9的置换次数分别是 0 2 1 1 0 0 0 0 0 0

程序5】#include <>

void main()

char *table=

char str1[64],str2[255],*p;

int j,k,n,no[10];

for (;

str2[k] =5置字符串结束符于str2末尾 */

printf("%s",str2);

for(k=0;k<10;k++)printf("no[%d]=%d\t",k,no[k]);

试题六 (15分,每个空格3分)

c语言试卷c

a.p q c.p n1 10 若有说明语句 int a,b,c,d c 则能从键盘读入三个整数分别赋给变量a b c的语句是。a.scanf d d d a,b,d b.scanf d d d a,b,d c.scanf d d d a,b,dd.scanf d d d a,b,d 11 c语言标...

C语言试卷A

青海大学试卷 a卷 系别 班级学号姓名。考试课程 程序设计基础 c 考试日期 2009 年 12月17日。注 所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回。一 填空题 每空1分,共16分 1 整型静态数组没有初始化,也没有赋值,此时数组元素的值均为 0 2 数组在内存中占...

C语言试卷

一 填空共5题 共计10分 第1题 2.0分 题号 339 赋值运算符的结合性是由 右 至 左 第2题 2.0分 题号 925 在c 语言结构化程序中,函数 是程序的基本组成单元 在c 语言的面向对象设计框架中,对象 是程序的基本组成单元。第3题 2.0分 题号 926 c 语言的参数传递机制包括传...