上海市C语言二级真题程序填空、程序调试、程序设计及截图

合集下载

上海计算机二级C语言考试真题

上海计算机二级C语言考试真题

1单选设有定义int a[10]; 则合法数组元素的下标范围为_0~9_____设有定义:int x=10,y=20,z=30; 则执行下列语句后的结果是___20,30,30_____ if ( x>y ) z=x;x=y; y=z;printf("%d,%d,%d",x, y, z );执行下列语句序列后,不可能出现的运行结果是________ int n;scanf( "%d", &n);switch ( n ){case 1:case 2: putchar('X');case 3:case 4: putchar('Y'); break;default: putchar('Z');}2填空设有以下程序段,则执行完该程序段后,变量 i 的值是________ int i;char s[]="Hello!", *p=s;for( i=0; *(p+i)!='\0';i++ );阅读以下程序并写出运行结果___________ #include <stdio.h>main(){int k,n=0;for ( k=1; k<=1000; k++ )if ( k%3==0 && k%5==0 ){printf( "%d ", k );n++;if ( n==3 ) break;}}3程序填空以下程序输入n和n个大于1的正整数,输出其中素数。

如输入:5 19 93 11 37 15则输出:19 11 37例示说明:先输入n为5,再输入5个正整数,输出5个整数中的素数#include <stdio.h>void main(){int n, a, i, j, ct;scanf( "%d", &n );for ( i=0; ____(1)____; i++ ){______(2)______;scanf( "%d", &a );for( j=2; j<a; j++ )if ( ____(3)____ )ct++;if ( ct==0 )printf( "%d ", a );}printf( "\n" );}以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。

2010年上海市高等学校计算机等级考试试卷二级C语言程序设计

2010年上海市高等学校计算机等级考试试卷二级C语言程序设计

2010年上海市高等学校计算机等级考试试卷二级 C语言程序设计( C 卷)(本试卷考试时间 120 分钟)一、单选题1. C程序是由_______组成的。

A. 子程序B. 过程C. 子函数D. 主函数和子函数2. 若有定义语句:char c='\n'; 则变量c _______。

A. 包含4个字符B. 包含2个字符C. 包含1个字符D. 说明不合法,c的值不确定3. 设有float x=1.25; int n=x; 则语句printf("%.2f,%d\n",x,n);的输出是:_______ 。

A. 1.25,1.25B. 1,1C. 1,1.25D. 1.25,14. 设x为int型变量,且初值为 'f',则执行printf("%c\n", 'A'+(x-'a'+1));后的输出结果是_______。

A. GB. HC. ID. J5. 设有int n; 则判断“n为二位数(10至99)”的表达式是:_______ 。

A. 10<=n<=99B. 10<=n || n<=99C. 10<=n, n<=99D. 10<=n && n<=996. 下列if语句中,错误的是 _______。

A. if(a==b) a-- else b++;B. if(a-b>0) printf("a>b\n");C. if(x>0&&x<10) y=x*x-1.5;D. if(x) y+=1;7. 设:int i,n ; float sum; 则求调和级数s=1+1/2+1/3+...前n项之和的正确循环语句是_______。

A. for(i=1;i<=n;i++) sum+=1/i ;B. for(i=1,sum=0.0;i<=n;i++) sum+=1/i;C. for(i=1,sum=0.0;i<=n;i++) sum+=(float)(1/i) ;D. for(i=1,sum=0.0;i<=n;i++) sum+=1.0/i;8. C程序中,return语句的作用是_______。

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

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

2006年上海市高等学校计算机等级考试试卷二级 (C 程序设计)(本试卷答卷时间为120分钟)试题一(28分,每小题4分)解答下列各小题,把解答写在答卷纸的对应栏内。

⑴ 设a ,b ,c 为整型并且a=3,b=5,c=7;写出下面表达式的值。

(注:对每小题求值时a=3,b=5,c=7保持不变)① c>b>a ② c%=a-b%1 ③ b/=c-b%4 ④ ++a==--b⑵ 简述break 和continue 语句在使用场合和功能方面的区别。

⑶ 执行下列程序后的输出结果是什么?void main() {int a, b, c;a=b=1;c=a++,b++,++b;printf("%d,%d,%d\n",a,b,c);}⑷ 执行下列语句后的输出结果是什么?#include <string.h>char s1[]="12345", s2[]="1234";printf("%d\n",strlen(strcpy(s1,s2)));printf("%s\n",s1+s2);⑸ 写出数学计算式|1|72sin x y +=的C 语言表达式。

⑹ 写出宏定义s(x,y)的含义,执行下列程序后的输出结果是什么?#define s(x,y) x=x+y,y=x-y,x=x-yvoid main() {int a=12, b=9;s(a,b);printf("a=%d\tb=%d\n",a,b);}⑺ 用文字描述以下程序段所完成的功能:FILE *fr, fw;fr=fopen("a.txt", "r")fw=fopen("b.txt","w");while(!feof(fr))fputc(fgetc(fr),fw);fclose(fr);fclose(fw);试题二(12分,每小题6分)阅读下列程序,把程序的输出结果写在答卷纸的对应栏内。

上海市高等学校计算机等级考试(二级)《C程序设计》考试大纲

上海市高等学校计算机等级考试(二级)《C程序设计》考试大纲

上海市高等学校计算机等级考试(二级)《C程序设计》考试大纲(2010年修订)一、考试性质上海市高等学校计算机等级考试是上海市教育委员会组织的全市高校统一的教学考试,是检测和评价高校计算机应用基础知识教学水平和教学质量的重要依据之一。

该项考试旨在规范和加强上海高校非计算机专业的计算机教学工作,提高非计算机专业学生的计算机应用能力。

考试对象主要是上海高等学校非计算机专业学生,考试每年举行一次,当年的十月下旬、十一月上旬的星期六或星期日。

凡考试成绩达到合格者或优秀者,由上海市教育委员会颁发相应的证书.本考试由上海市教育委员会统一领导,聘请有关专家组成考试委员会,委托上海市教育考试院组织实施。

二、考试目标C语言是当前常用的一种简洁、高效、功能丰富的程序设计语言,是理工科大学生学习计算机编程能力、理解计算机解决问题的方法的重要工具。

学生通过该课程的学习,应能了解、掌握C语言的语法和使用它进行编程的方法,并能上机调试运行解决简单实际问题。

《C程序设计》的考试目标是测试考生掌握C语言知识的程度和综合运用语言知识进行程序设计的能力。

三、考试细则考试采用基于网络环境的无纸化上机考试系统。

考试时间为120分钟。

试卷总分为100分。

试题由四部分组成:单选题、程序调试题、程序填空题和综合编程题。

试卷从局域网的服务器下载、考试结果上传到服务器,若不按照要求上传到服务器,则考试无效.考试阅卷采用机器和人工相结合的网上阅卷方式。

六、几点说明(一)建议学时数48-64学时,其中16-32学时为实验课(二)建议考试对象理、工、农、医专业类非计算机专业本科生(三)建议计算机配置计算机硬件基本要求:中央处理器Pentium III 550MGHz以上内存 128MB以上硬盘 20GB以上计算机软件基本要求:操作系统 Windows 2000及以上编程环境中文Microsoft Visual C++ 6.0(四)考试环境安装并使用“上海市高校计算机等级考试通用平台”进行考试。

上海市计算机等级考试二级(Java)-程序调试与程序填空

上海市计算机等级考试二级(Java)-程序调试与程序填空

java程序设计二级等级考复习资料(习题集)程序调试题下列程序都有三个错误, 按题中的要求,纠正错误并调试程序,程序中语句前的#1、#2、……是附加的行号(用于讲解),不是程序内容。

一、复习题解析(一)语法错误调试题1.下面的应用程序用于计算两个整数之和,正确的应用程序执行后输出的结果如下所示:C:\> java test2_1(能用集成环境调试的尽量用集成环境,此处为书写方便)The sum is: 75#1public class test2_1#2 /* A program to add two numbers together */#3 public static void pain(String[] args) {#4 int a = 23;#5 int b = 52;#6 int c = sum(a, b);#7 System.out.println("The sum is: " + c);#8 }#9 public int sum(int a, int b) {#10 return a + b;#11 }#12 }答:#1 public class test2_1{#3 public static void main(String[] args) {#9 public static int sum(int a, int b) {【解析】类的声明中规定,类体必须用一对大括号括起来,因此在第1行类名后加一左大括号;第3行main方法名写错,需纠正;由于main方法是类方法,其中调用的方法也必须是类方法,因此第9行的方法声明中加入static。

2.下面的应用程序执行时会发生错误,正确的应用程序执行后输出的结果如下所示:运行结果如下:C:\> java test2_24 foods14 televisions10 foods#1 public class test2_2 {#2 public void main(String[] args) {#3 Item t1 =Item("food");#4 System.out.println(t1);#5 Item t2 = new Item("television");#6 System.out.println(t2);#7 t2.setValue(10);#8 System.out.println(t1);#9 }#10 }#11 class Item {#12 private name;#13 private static int value = 0;#14 public Item(String theName) {#15 name = theName;#16 value = value + theName.length();#17 }#18 public void setValue(int newValue) {#19 value = newValue;#20 }#21 public String toString() {#22 return value + " " + name + "s";#23 }#24 }答:#2 public static void main(String[] args) {#3 Item t1 = new Item("food");#12 private String name;【解析】java 应用程序中main 方法是程序执行的入口,规定该方法必须是static 方法,因此对第2行进行修改;第3行在实例化对象t1时应通过new 运算符来完成;第12行声明成员变量时,应明确变量类型,根据上下文判断应为String 型。

上海市高等学校计算机等级考试试卷二级C语言程序设计

上海市高等学校计算机等级考试试卷二级C语言程序设计

20XX年上海市高等学校计算机等级考试试卷二级 C语言程序设计(本试卷考试时间 120 分钟)一、单选题 ( 本大题 15 道小题,每小题 1 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。

1. 以下C程序中预处理命令写法正确的是:答案: DA. #include (stdio.h)B. #include [stdio.h]C. #include {stdio.h}D. #include <stdio.h>2. 设有变量定义语句char a; 则下面的赋值语句中 ( ) 是正确的。

答案: AA. a='&';B. a="&";C. a=' ' ';D. a='16' ;3. 设有char ch; 与语句“ch=getchar();”等价的语句是:答案: DA. printf("%c",ch);B. printf("%c",&ch);C. scanf("%c",ch);D. scanf("%c",&ch);4. int a=2, b=5;则表达式21%9/(float)a+4/b*b的运算结果为( )。

答案: CA. 2B. 1C. 1.5D. 05. 能正确表示逻辑关系"a>=10 或 a<=0"的C语言表达式是( )。

答案: CA. a>=10 or a<=0B. a<=0|a>=10C. a<=0||a>=10D. a>=10 && a<=06. 设有int n=60;写出下列语句的运行结果switch (n/10){case 6: printf("@");break;case 5: printf("#");default: printf("$");}答案: DA. @#$B. #$C. $D. @7. 设有int i; 以下语句中,循环次数为100次的语句是:答案: DA. for ( i=0; i<=100; i++ )B. for ( i=0; i<99; i++ )C. for ( i=1; i<99; i++ )D. for ( i=0; i<100; i++ )8. C程序中,用于提前结束本次循环、进行下一次循环的语句是( )。

上海市计算机二级考试(C语言)复习资料题目

上海市计算机二级考试(C语言)复习资料题目

上海理工大学上海市计算机二级考试(C语言)复习资料题目C语言是一种面向过程的程序设计语言,函数、指针、地址和递归概念是它的难点。

本复习资料以教学大纲为依据,提供各类题型和练习,重在“基本概念”、“常用算法”、“阅读分析程序”、“编程技能”等诸方面的强化训练,按照上海市计算机二级考试(C语言)的框架,提供“基础知识、读程序写结果、改错、编程序和程序指令填空”几部份,供学生学习参考,文末附习题参考解答。

第一部份:基础知识1. 下述循环的循环次数是(B)int k=2;while(k=0)printf("%d",k);k--;printf("\n");A、无限次B、0次C、1次D、2次2. 在下列选项中,没有构成死循环的程序段是(C)A、int i=100;B、for(;;)while(1){i=i%100+1;if(i>100)break;}C、int k=1000;D、int s=36;do {++k;} while(k>=10000);while(s);--s;3. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是(C)int a[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a;A、*(a+i)B、a[p-a]C、p+iD、*(&a[i])4. 下面能正确将字符串"Boy"进行完整赋值操作的语句是(B)A、char s[3]={'B','o','y'};B、char s[ ]="Boy";C、char s[3]={"Boy"};D、char s[3];s[0]='B';s[1]='o';s[2]='y';5. 以下程序段的输出结果是(D )char arr[ ]="ABCD";char*ptr;for(ptr=arr;ptr<arr+4;ptr++)printf("%s\n",ptr);A、ABCDB、AC、DD、ABCDBCDCDD6. C语言的auto型变量是(A)A、存储在动态存储区中。

最新上海市高等学校计算机等级考试试卷二级c语言程序设计(-b-卷)

最新上海市高等学校计算机等级考试试卷二级c语言程序设计(-b-卷)

2009年上海市高等学校计算机等级考试试卷二级 C语言程序设计( B 卷)一、单选题1. 下列C语言的标识符中,不合法的标识符为____________A. starB. 1234C. _a100D. 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, y=55.5↙C. 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 a[3][4],s;则对数组a的元素引用正确的是____________A. s=0; for(i=0;i<=3;i++) for(j=0;j<4;j++) s+=a[i][j];B. s=0; for(j=0;j<=4;j++) for(i=0;i<3;i++) s+=a[i][j];C. s=0; for(i=0;i<4;i++) for(j=0;j<=3;j++) s+=a[j][i];D. s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) s+=a[i][j];7. 如果形参获取实参的地址,则____________作为函数调用时的实参。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

B考场程序填空1程序运行时,输入整数n(0<n<10)后,输出一个数字金字塔。

如输入4,则输出: 1222333334444444源程序:#include <stdio.h>void main(){ int i,j,n;scanf("%d", &n);for(i=1; ____1____;i++){for(j=1;j<=n+1-i;j++)putchar(' '); /* 输出空格 */for(j=1;j<=____2____;j++)printf("%d",i);printf("____3____");}getchar(); /*暂停程序,按任意键继续*/2输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。

运行示例:输入字符串: ABCabc23+45#各类字符个数:letter=6, digit=4, other=2源程序:#include <stdio.h>void main( ){ int digit, letter, other;char ____1____;digit = letter = 0;other = ____2____;printf("输入字符串: ");while( (ch = getchar())!= '\n')if((ch >= 'a' && ch <= 'z') || (____3____))letter ++;else if (ch >= '0' && ch <= '9')digit ++;else____4____;printf("各类字符个数:\n ");printf("letter=%d,digit=%d,other=%d\n",letter,digit,other);getchar(); /*暂停程序,按任意键继续*/}3输入一个整数,逆序后输出。

函数reverse(int number)的功能是返回number的逆序数。

例如reverse(12345)的返回值是54321。

运行示例:输入整数: -1230逆序后: -321源程序:#include <stdio.h>int reverse(int);void main( ){ int in;____1____;printf("输入整数:");scanf("%d", &in);m = ____2____;printf("逆序后:%d\n",m);getchar(); /*暂停程序,按任意键继续*/}int reverse(int number){ ____3____;int res=0;flag = number < 0 ? -1 : 1; /* flag标志正负数 */if(number < 0) number = - number;while(number != 0){res = res*10 + number%10;____4____;}return ____5____*res;一)程序调试题(3小题,第1小题2处错,第2、3小题各3处错,每改正1处错2.5分,共20分)1. 程序调试题1调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。

将结果(包括B_2_1.C文件和B_2_1.EXE文件)保存到目录C:\KS\中。

功能说明:利用格里高利公式π/4=1-1/3+1/5-1/7+......求前n.项的π值。

如输入:5 则输出:pi=3.339683又输入:10000 则输出:pi=3.141498带错误原程序(见C:\KS\B_2_1.C):#include <stdio.h>main( ){float pi=0,n,i;int sign=1;scanf("%f",n);for (i=1;i<=n;i++){pi+=sign/(2*i-1);sign=-sign;}pi=4*piprintf("pi=%f\n",pi);getchar(); /*本句无错;暂停程序,按任意键继续*/}2. 程序调试题2调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。

将结果(包括B_2_2.C文件和B_2_2.EXE文件)保存到目录C:\KS\中。

功能说明:从键盘输入一个非负十进制整数n(n<32768),转化成二进制存入数组a,输出二进制结果。

如输入:23 则输出:10111又输入:1234 则输出:10011010010带错误原程序(见C:\KS\B_2_2.C):#include <stdio.h>main(){int a[16],n;scanf("%d",&n);for (i=0;n<0;i++){a(i)=n%2;n/=2;}while(i>0)printf("%d",a[--i]);getchar(); /*本句无错;暂停程序,按任意键继续*/}3. 程序调试题3调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。

将结果(包括B_2_3.C文件和B_2_3.EXE文件)保存到目录C:\KS\中。

功能说明:程序从键盘输入一行字符串,所有字符依次向右循环移动m个位置并输出,移出的字符循环到最左边。

如输入:1234567893则输出:789123456带错误原程序(见C:\KS\B_2_3.C):#include <stdio.h>#include <string.h>void shift_s(char a[],int n,int m) /*a数组的n个字符右移m个位置*/{int i,j;for(i=1;i<m;i++){for (j=n;j>0;j--)a[j] = a[j+1]; /*移位并复制*/a[0]=a[n];}a[n]='\0';}main(){char stra[80];int i, n,m;gets(stra);n = strlen(stra);scanf("%d",&m);shift_s(stra,n,m); /*函数调用参数*/puts(*stra);getchar(); /*本句无错;暂停程序,按任意键继续*/}(二)编程题(2小题,共35分)1.编程题1编程要求:请按题中的功能要求,编写程序并能得到正确的结果。

将结果(包括B_4_1.C文件和B_4_1.EXE文件)保存到目录C:\KS\中。

功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):(1)输入10个成绩(整数类型,数组名记为a);(2)计算并输出最高分(记为max)、最低分(记为min)与成绩中值(记为midd),其中成绩中值为最高分与最低分的平均值(保留一位小数输出);(3)将midd及以上的成绩归为A档,midd以下的成绩归为B档,统计并输出A、B两档的人数。

运行示例:输入:88 59 50 74 60 99 75 90 68 70输出:Max=99, Min=50, Midd=74.5, A=4, B=62.编程题2编程要求:请按题中的功能要求,编写程序并能得到正确的结果。

将结果(包括B_4_2.C文件和B_4_2.EXE文件)保存到目录C:\KS\中。

功能说明:编写程序,通过以下步骤验证一个正整数是否符合特定的规则:(1)输入一个4位的正整数n,将n分拆为a与b两部分:a为n的高3位,b为n的最低位;(2)计算a的所有因子之和,记为s(当1≤i<a时,如果a是i的倍数,则i是a的因子);(3)如果s的个位数等于b,则输出"Pass",否则输出"Fail";(4)将a,b,s的值保存到文本文件"B42.TXT"中。

输出格式参见以下示例。

运行示例:输入:1164输出:116: 1+2+4+29+58=94, Pass运行后文件内容:116 4 94说明:输入数为1164(对应n),分拆为116(对应a)和4(对应b),116的因子为1、2、4、29和58,累加和为94(对应s),s的个位数等于b(4),输出"Pass",a,b,s保存在文件中。

C考场输入学生成绩,直到输入成绩的数量超过50个或者输入的成绩不是有效成绩(有效成绩为0~100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。

函数getmax(array,n)功能是,在有n个元素的一维数组array中找出最大值并返回。

运行示例:输入成绩: 90 80 77 65 -1Max = 90源程序:#include <stdio.h>#define MAXNUM 50int getmax(int array[],int n){ int k, max;max = ____1____;for (k = 1; k < n; k++)if (max < array[k])max = array[k];return ____2____;}void main( ){ int k, x;int mark[MAXNUM];printf("输入成绩:");k = 0;scanf("%d", &x);while(k < MAXNUM && x >=0 && x <= 100){mark[k] = x;k=____3____;scanf("%d", ____4____);}if(k > 0)printf("Max = %d\n", ____5____);/* 输出最高分 */elseprintf("No marks!\n");getchar(); /*程序暂停,按任意键继续 */}1)【array[0]】2)【max】3)【k+1】4)【&x】5)【getmax(mark, k)】(一)程序调试题(3小题,第1小题2处错,第2、3小题各3处错,每改正1处错2.5分,共20分)1. 程序调试题1调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。

相关文档
最新文档