云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 07上海市计算机二级考试C语言

07上海市计算机二级考试C语言

  • 62 次阅读
  • 3 次下载
  • 2025/6/4 4:55:31

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

二级 (C程序设计)

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

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

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

⑴ 设有int x=3,y=2,z=1;分别写出下面表达式求值后变量x和y的值。 (注:对每小题求值时,变量的初值都为x=3,y=2,z=1) ① y=(y=3,2*x++) ② (x=5)||(y=6*x)

⑵ 写出下列程序的输出结果。 #include void main()

{ int n; float x=2.7181; n=100*x;

x=(int)(x*100+0.5)/100.0; printf(“n=%d\\n”,n); printf(“x=%f\\n”,x); }

⑶ 写出变量x的绝对值小于20为真的C语言表达式。

⑷ 描述学生信息的结构变量定义为: struct student

{ int no; /* 学号 */ char *name; /* 姓名 */ char sex; /* 性别 */

struct /* 出生年月 */ { int year; int month; int day; } birthdate; };

struct student s;

写出能完成结构体变量s的部分成员赋值,使姓名为”Li_ping”,出生年份为1985的C语句。

⑸ 在C语言中,函数random (int num) 的功能是生成一个0到(num-1)之间的随机整数,经过下列赋值语句的执行后,m和x的取值范围是多少? int m; float x;

m=50 + random(50);

x= m + random(100)/100.0;

⑹ 用文字描述以下程序所完成的功能: #include void main()

{ FILE *in, *out; char ch;

in=fopen(“a.c”,”r”); out=fopen(“b.c”,”w”);

while(!eof(in)) /* 函数ferof()用来检测是否到达文件尾 */

/* 如到达文件尾返回非0,否则返回0 */

{ ch=fgetc(in); Fputc(ch); }

fclose(in); fclose(out); }

⑺ 假定建立了以下链表结构,如下图所示:指针p、q分别指向如图所示的结点,写出将q所指结点从链表中删除并释放该结点的C程序段。

data next

head …… 3 8 4 p

q

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

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

#include void main() { {

int x=0, y=0, z; while(y<6) x+=++y;

printf(“output1:%d %d\\n”,x,y); for(y=1;y<6;y++) x=y;

printf(“output2:%d %d\\n”,x,y); for(y=1;y<6;) { x=y++;

z=++y; }

printf(\ }

⑵ 【程序2.2】

#include int f(int b[],int n ) {

int i, r;

r=1;

for(i=0; i

void main() {

int x, a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3);

printf(“x=%d\\n”,x); x=f(a+1,3);

printf(“x=%d\\n”,x); }

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

改错。下列程序中都有三个错误,按题中的功能要求,纠正错误,并以“将#XX行改为YYYY”的形式进行解答,把解答写在答卷纸的对应栏内。代码左边的#01、#02、……是附加的行号。

【程序3.1】下面程序的功能是统计一个字符串中各字母出现的次数,该字符串从键盘输入,统计时不区分大小写。对数字、空格及其他字符都不予统计。最后在屏幕上显示统计结果。

例如字符串“abcdefgh23ABCDEF abc”的统计结果与输出格式为:

a b c d e f g h i j k l m n o p q r s t u v w x y z 出现的次数为: 3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #01 #include #02 #include #03 void main() #04 {

#05 int i, a[26];

#06 char ch, str[80], *p=str; #07 gets(&str);

#08 for(i=0; i<26; i++) a[i]=0; #09 while(*p) { #10 ch=(*p)++;

#11 ch=ch>=?A?&&ch<=?Z??ch+?a?-?A?:ch;

#12 if(?a?<=ch<=?z?) a[ch-?a?]++; #13 }

#14 for(i=0; i<26; i++) printf(“,”, ?a?+i); #15 printf(“出现的次数为:\\n”);

#16 for(i=0; i<26; i++) printf(“-”, a[i]); #17 printf(“\\n”); #18 }

【程序3.2】以下程序求e=1 + 1/1! + 1/2! + ? + 1/n! + ? 的值,直到最后一项的值不超过10为止。

#01 #include #02 void main() #03 { double e,a; #04 int i=1; #05 e=1.0; #06 a=0.0; #07 do {

#08 a*=i; #09 e+=a; #10 i=i+1; {

#11 } while(a<=1e-6); #12 printf(“%f\\n”,e); #13 }

-6

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

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

⑴ 编写函数f (int n)用来统计正整数n的位数(例如,n=123时函数返回3)。

⑵ 写出一个函数 int lower_ave (float s[], int n, float *aver),它能从存放学生分数的一维数组s中求出其平

均分和低于平均分的学生人数;其中数组s[]存放学生分数,参数n为学生人数,参数aver是指向平均分的指针变量。

(要求平均分通过指针参数传递,人数通过函数值返回。)

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

阅读下列问题描述和相应的程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。 【问题描述】以下程序输入10行字符串,要求按字典顺序从小到大排序。

【程序5】

#include #define N 10

int biggerthan(char *str1, char *str2) /* 若字符串str1大于字符串str2时,则返回1 */ { for(; *str1||*str2; (1) ) { if(*str1>*str2)

搜索更多关于: 07上海市计算机二级考试C语言 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

2007年上海市高等学校计算机等级考试试卷 二级 (C程序设计) (本试卷答卷时间为120分钟) 试题一(28分,每小题4分) 解答下列各小题,把解答写在答卷纸的对应栏内。 ⑴ 设有int x=3,y=2,z=1;分别写出下面表达式求值后变量x和y的值。 (注:对每小题求值时,变量的初值都为x=3,y=2,z=1) ① y=(y=3,2*x++) ② (x=5)||(y=6*x) ⑵ 写出下列程序的输出结果。 #include void main() { int n; float x=2.7181; n=100*x; x=(int)(x*100+0.5)/100.0; printf(“n=%d\\n”,n);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com