




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上海市高等学校计算机等级考试试卷二级 C 语言程序设计( B卷)一、单选题1. 下列 C语言的标识符中,不合法的标识符为_A. star B. 1234 C. _a100 D. circuit92. 若已定义 : int x=10;则表达式x= ( 4*5,x*5,x+25)的值是_。A. 20B. 45C. 125D. 353. 若 x 是 int类型变量, y 是 float类型变量,则为了将数据 55 和 55.5 分别赋给 x 和 y,则执行语句:scanf( “ %d, %f ” ,&x,&y,);时,正确的键盘输入是 _。A. 55 , 55.5 B. x=55,
2、y=55.5C. 55 55.5 D. x=55 y=55.5 4. 若有说明语句: int x=25,y=20,z=30;则执行语句: if(x>y) y=z; z=x; x=y; printf(“ %d,%d,%d” ,x,y,z);后,输出是_A. 25,20,30B. 30,30,25C. 25,30,30D. 25,30,255. 程序段: int num=2;while(num)printf( “ %d , ” ,num-);的运行结果是 _A. 2,1,B. 2,1C. 2 ,1,0D. 2 ,1,0,6. 若有说明: int a34,s;则对数组 a 的元素引用正确的是
3、_A. s=0;for(i=0;i<=3;i+)for(j=0;j<4;j+) s+=aij;B. s=0;for(j=0;j<=4;j+)for(i=0;i<3;i+) s+=aij;C. s=0;for(i=0;i<4;i+)for(j=0;j<=3;j+) s+=aji;D. s=0;for(i=0;i<3;i+)for(j=0;j<4;j+) s+=aij;7. 如果形参获取实参的地址,则 _作为函数调用时的实参。A. 数组名B. 全局量C. 数组中全部元素的值D. 数组中的元素个数8.若有定义: int i,j,*pi=&i;则
4、与 i=j等价的比较表达式是_A. i=*piB. *pi =*&jC. i=&jD. i=*pi9. 若有定义: struct person int id ;char name20; per , *s=&per;则以下对结构体成员的引用中正确的_A. 0B. s->name0C. 8D. per.id10.若有以下语句:char x=5,y=9,z; z=( y|x ) <<2;则 z 的二进制值是 _A. 00011011 B. 00001010 C. 00110100 D. 00001100二、填空题1. 设有说明
5、语句: int a=15, b=6; 则 a/b 的十进制数值为 _2.设有说明语句: int x=3, y=2;则计算表达式 (x=0)&& (y=6*x)后变量 y 的值是_3.设 a,b,c,t 为整型变量 , 初值为 a=3,b=4,c=5 ,执行完语句 t=!(a+b)+c-1|b+c/2后, t的值是 _4.定义函数时,将其类型定义为void 则表示所定义的函数返回值为_.5. 下列程序的输出结果是 _f(int a) int i=0;while (ai<=10) printf(“ %d ” , ai); i+;main() int a=8,4,10,11,9
6、,20; f(a);6. 下列程序的输出结果是 _long fib(int g)switch(g)case 0: return(0);case 1:case 2: return(2);return ( fib(g-1) + fib(g-2) );main()long k;k = fib(5);printf("k=%ldn", k);7.假定建立了以下链表结构:struct nodeint id ;struct node *next; *head, *p;如图 6-11 所示:指针p指向一个新结点,将新结点插入到链表中的两条C语言语句是【】插入 P后的链表hea729p2图
7、6-11新结点插入到链表三、程序填空题(本大题 3道小题,每空 3分,共 30分)。1. 下列程序的功能是: 计算机给出 10 个不大于 31 的正整数让人猜, 并根据猜中的情况统计总得分后输出。具体规则如下:(1)计算机每给出一个要猜的数最多允许中5 次,第一次猜对得10 分,第二次猜对得8 分,第三次猜对得6 分,第四次猜对得4 分,最后一次猜对得2 分,否则不得分。(2) 若人猜的数太小,计算机给出提示“too small ! ”;若人猜的数太大,计算机给出提示“ too large ! ”;若人猜对这个数,计算机给出提示“right !”, 并给出下一个数继续让人猜;若一个数已经猜了5
8、 次都猜错,计算机给出提示“outof time ! ”,也给出下一个数继续让人猜。直至猜完10 个数。( 假设机器产生的随机数为 9)下面是人猜一个数的过程,有下划线的部分是人猜的数:请输入你猜测的数y= 16too large !y= 4请输入你猜测的数too small !y= 9请输入你猜测的数right !(本题是第三次猜对,得6 分)#include <stdio.h>#include <stdlib.h>void main()int i, c, x, y, score, right;1;/*变量赋初值*/for (i=1; i<=10; i+)x=r
9、andom(32);/*随机产生一个不大于31 的要猜的数*/c=0;do c+;printf("nscanf("%d", &y);right=(y=x);/*if (right=1)printf("2");请输入你猜测的数猜对时 righty= ");为 1,否则为0 */elseprintf("%sn", ( 3 while(right=0&&)? "too small !" :"too large !");4);if (right)score+=
10、 (5);/*统计成绩*/elseprintf("out of time !n");printf("nTotal score:%dn", score);2. 以下程序输入 10 行字符串,要求按字典顺序从小到大排序。#include <stdio.h>#define N 10int biggerthan( char *str1, char *str2 )/*若字符串 str1大于 str2时,则返回1*/for ( ; *str1 | *str2;1)if ( *str1 > *str2 ) return 2 ;else if (*st
11、r1<*str2)return0 ;return 0;/*两个字符串相等 */void main() charlsN100;char*psN, *t;inti, j;for ( i = 0; i < N; i+ )gets( lsi ); psi = lsi;for ( i = 0; i < N-1; i+ ) /* 冒泡法排序 */ for ( j = 0; j < N-i-1; j+ )if ( biggerthan(3) )t = psj; 4 ;5;for ( i = 0; i < N; i+ )printf( " %s n",psi
12、);3.将两个文本文件中字符'$' 之后的内容合并到一个文件中去,其中函数voidsub(FILE*all, FILE*f1 ,FILE *f2 )的功能是将文件指针f1,f2所指向的文件中的内容写到文件指针all所指向的文件中;main 函数完成如下功能:先打开目标文件,再依次打开源文件,调用sub 函数完成文件内容的拷贝。例如三个源文件f1.txt ,f2.txt,每个文件的内容分别如下文件名内容f1aaa$aaf2bbb$bb则产生一个新的目标文件fall.txt,包括 f1,f2三个文件字符 '$'之前的内容, fall的内容为 aabb。#includ
13、e <stdio.h>#include <stdlib.h>main()FILE *f1, *f2,*fall;void sub(_1_ );if (fall=fopen(_2_ )=NULL) printf("Cannot open file!n");exit(1);if (f1=fopen("f1.txt","r")=NULL | (f2=fopen("f2.txt","r")=NULL) printf("Cannot open file!n");
14、exit(1); else sub(_3_ );_4_ ;fclose (f1);fclose(f2);void sub(FILE *all, FILE *f1, FILE *f2)char c;while(fgetc(f1)!='$');while(c=fgetc(f1)!=EOF) fputc(c,all);while(fgetc(f2)!='$');while(c=fgetc(f2)!=EOF) fputc(c,all);四、操作题三程序调试题1.程序调试题 1( E_3_1.c )调试要求: 下列程序不能得到正确的结果, 请按题中的功能要求, 调试并修改
15、该程序 (在所修改语句后加 /*modified*/ 字样的注释) ,使其运行能得到正确的结果。将结果(包括 E_3_1.c 文件和 E_3_1.exe 文件)保存到指定目录中。功能说明:统计一字符串中各个字母出现的次数,该字符串从键盘输入,统计时不区分大小写。对数字、空格及其他字符都不予统计。最后在屏幕上显示统计结果。例如字符串: “ abcdefgh23 ABCDEF 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 出现的次数为:#include <stdio.h>#include <
16、;string.h>void main( )int i, a26;char ch,str80, *p=str;gets(&str);/*获取字符串*/for(i=0;i<26;i+)ai=0;/*初始化字符个数*/while(*p) ch=(*p)+;/*移动指针统计不同字符出现的次数ch=ch>= A&&ch<=Z ?ch+ a - A :ch;/*大小写字符转换*/if( a <=ch<= z)ach- a +;for(i=0;i<26;i+) printf(“%2c” , a +i); /*/输出26 个字母*/print
17、f(“出现的次数为:n” );for(i=0;i<26;i+) printf(“%2d”, ai);printf(/*输出各字母出现次数 “ n ” );*/2.程序调试题 2( E_3_2.C)调试要求: 下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加 /*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括 E_3_1.c文件和 E_3_1.exe 文件)保存到指定目录中。功能说明:递归算法求xn,即 xn=x*x n-1 ,其中 x为实数, n0。原程序(见E_3_2.c )void main()float x, y;int
18、n;scanf("%f%d",&x,&n);y=xn(x,n);printf("xn=%fn",y);float xn(float x, int n)fload z;if(n<0) printf("n is a wrong number!n");exit(0);if(n!=0) z=1;elsez=xn(x,n);return z;五编程题1编程题1(E_5_1.c)编程要求 : 请按题中的功能要求,编写程序并能得到正确结果。将结果 (包括 E_5_1.c 文件和E_5_1.exe 文件)保存到指定目录中。功能说明: 编写一个函数, 将数组 a 中的 n 个数每 5 个相邻的元素为一组分别求和(假设求和结果不溢出) ,结果放到数组b 中,最后一组如果不足5 个也进行求和。例如,若数字a 的元素为 4, 8,3,3, 0, 5,2, 9,7,8, 4,3,2, 1,8, 4,3,2,则数组 b 的元素为 18, 31, 18, 9。2编程题 2(E_5_2.c)编程要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025建筑材料供应合作合同
- 2025企业劳动派遣合同范本
- 2025塔吊租赁和维护的合同书
- 2025建筑外墙仿石漆施工合同 安全施工协议
- 2025适宜用于商业注册的办公室租赁合同
- 土建工程施工合同补充协议
- 装饰画制作合同范本
- 起重机转让合同范本
- 宠物美容洗澡协议书
- 共享商圈协议书范本
- 《肌力训练》课件
- 全媒体运营师-国家职业标准(2023年版)
- 招标投标法培训课件
- GLB-2防孤岛保护装置试验报告
- 中铁员工内退管理办法
- 皮肤科玫瑰痤疮的临床表现和诊断学习培训课件
- 高考日语复习:日语形容词用法专项课件
- 马克思主义与社会科学方法论概述(课件)
- 城市道路养护技术规程
- 2023年国家药监局直属单位公开招聘笔试参考题库(共500题)答案详解版
- JGT116-2012 聚碳酸酯(PC)中空板
评论
0/150
提交评论