2010第1次C语言机试试题1
2010年12C语言机试模拟题

试卷一以下程序功能为:统计所有三位正整数中各个数位是数字之和是11的数的个数,请改错。
#include <stdio.h>void main(){ int i,j,s,count;count=1; /*$ERROR1$*/ count=0;for(i=100;i<=999;i++){s=0;j=i;while(j>1) /*$ERROR2$*/ (j>=1){s=s+j/10;/*$ERROR3$*/ s=s+j%10;j=j/10; }if(s==11) count=count+1; }printf("%d\n",count); }输出以下图形(数字之间没有空格,每行第一个数字之前也没有空格)请填空。
0001000001110001111101111111011111000111000001000#include <stdio.h>#include <math.h>void main(){ int i,j;for(i=-3;i<=___;i++) /*$BLANK1$*/ 3{ j=1;while(j<=abs(i)){ printf("0"); j++; }j=1;while(j___7-2*abs(i)) /*$BLANK2$*/ <={ printf("1"); j++; }j=1;while(j<=abs(i)){ printf("0");___; /*$BLANK3$*/ j++}printf("\n"); }}求所有水仙花数之和。
例153=1*1*1+5*5*5+3*3*3 #include <stdio.h> void PRINT(int s){ FILE *out;printf("sum=%d\n",s);if((out=fopen("C:\\24000101\\RESULT.DA T","w+"))!= NULL)fprintf(out,"sum=%d",s);fclose(out); }void main(){int s=0,a,b,c,i;for (i=100;i<1000;i++){ a=a/100;b=i/10%10;c=c%10;if (a*a*a+b*b*b+c*c*c==i) s=s+i; }PRINT(s);}试卷二以下程序功能为:在屏幕上输出如下图形(数字字符之间和第一个数字字符前都没有空格),请改错。
2010年3月全国计算机等级考试二级C语言笔试试卷及参考答案

绝密★启用前2010年3月全国计算机等级考试二级笔试试卷C语言程序设计及参考答案(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分。
共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。
(1) 下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)log n)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(2log n)D) 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n2(2) 算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3) 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4) 软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5) 数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6) 软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7) 数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8) 在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9) 数据库设计中,用E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段 B)逻辑设计阶段C)概念设计阶段 D)物理设计阶段(10) 有两个关系R 和T 如下:R T则由关系R 得到关系T 的操作是选择B )投影 C)交 D)并(11) 以下叙述正确的是A)C 语言程序是由过程和函数组成的B)C 语言函数可以嵌套调用,例如:fun(fun(x))C)C 语言函数不可以单独编译D)C 语言中除了main 函数,其他函数不可以作为单独文件形式存在(12) 以下关于C 语言的叙述中正确的是A)C 语言中的注释不可以夹在变量名或关键字的中间B)C 语言中的变量可以再使用之前的任何位置进行定义C)在C 语言算术的书写中,运算符两侧的运算数类型必须一致D)C 语言的数值常量中夹带空格不影响常量值的正确表示(13) 以下C 语言用户标示符中,不合法的是A)_1 B)AaBc C)a_b D)a--b(14) 若有定义:double a=22;int i=0,k=18;则不符合C 语言规定的赋值语句是A)a=a++,i++B)i=(a+k)<=(i+k) C)i=a%11D)i=!a(15)#include <stdio.h>main(){char a,b,c,d;scanf("%c%c ",&a,&b);c=getchar(); d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)12<CR>34<CR>则输出结果是:A、1234B、12C、12D、123 3416、以下关于C语言数据类型使用的叙述中错误的是:A、若要准确无误的表示自然数,应使用整数类型。
2010年3月全国计算机等级考试二级C语言笔试试卷及参考答案

一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分。
共70分)(1) 下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D) 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n)(2) 算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3) 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B操作系统C)教务管理系统D)浏览器(4) 软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5) 数据流程图(DFD图)是A)软件概要设计的工具printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)12<CR>34<CR>则输出结果是:A、1234B、12C、12D、123 3416、以下关于C语言数据类型使用的叙述中错误的是:A、若要准确无误的表示自然数,应使用整数类型。
B、若要保存带有多位小数的数据,应使用双精度类型。
C、若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型。
D、若只处理"真"和"假"两种逻辑值,应使用逻辑类型。
17、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是:A、1B、0C、2D、不知道a的值,不能确定18、以下选项中与if(a==1) a=b;else a++;语句功能不同的switch语句是:A、switch(a){ case 1:a=b;break;default : a++;}B、switch(a==1){case 0 : a=b;break;case 1 : a++;}C,switch(a){default: a++;break;Case 1: a=b;}D、switch(a==1){case 1 : a=b;break;case 0 : a++;}19、有如下嵌套的if语句 Cif(a<b)if(a<c) k=a;else k=c;elseif(b<c) k=b;else k=c;以下选项中与上述if语句等价的语句是A、k=(a<b)?a:b;k=(b<c)?b:c;B、k=(a<b)?((b<c)?a:b):((b<c)?b:c);C、k=(a<b)?((a<c)?a:c):((b<c)?b:c);D、k=(a<b)?a:b;k=(a<c)?a;c(20)有以下程序#include <stdio.h>main(){ int i,j,m=1;for(i=1;i<3;i++) { for(j=3;j>0;j--){ if(i*j>3) break;m*=i*j;}}printf("m=%d\n",m)}程序运行后的输出结果是(A) m=6 (B)m=2 (C)m=4 (D)m=5(21)有以下程序#include <stdio.h>main(){ int a=1,b=2;for(;a<8;a++) {b+=a; a+=2;}printf ("%d,%d\n",a,b);}程序运行后的输出结果是(A)9,18 (B)8,11 (C)7,11 (D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){ int k=011;printf("%d\n",k++);}程序运行后的输出结果是(A)12 (B)11(C)10 (D)9(23)下列语句中,正确的是A) char *s ; s="Olympic";B) char s[7] ; s="Olympic";C) char *s ; s={"Olympic"};D) char s[7] ; s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B) 一个自定义函数中可以根据不同情况设置多条return语句C)定义成viod类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能够正确定义数组的语句是A)int num[0..2008]; B) int num[];C) int N=2008; int num[];D)#define N 2008int num[N];(26)有以下程序#include<stdio.h>void fun (char*c,int d){ *c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){ char b=’a’,a=’A’;fun(&b,a); printf("%c,%c\n",b,a);}程序运行后的输出结果是A)b,B,b,A B)b,B,B,A C)a,B,B,aD)a,B,a,B(27)若有定义int(*pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组pt。
2010年3月全国计算机等级考试二级C语言笔试真题及参考答案

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a-b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#include<stdio.h>main(){ char a,b,c,d;2scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<b)第 3 页共 13 页if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);C)k=(a<b)?((a<c)?a:):((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<s七dio.h>main(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}4程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#include <stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)第 5 页共 13 页C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include <stdio.h>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d",a[i]);}6printf("\n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#include <studio.h>int f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include <stdio.h>#define SUB(a)(a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;第 7 页共 13 页printf("%d\n",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;8(39)有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#include <stdio.h>main(){FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。
2010春江苏省计算机二级C语言试题与答案(笔试)

2010年春江苏省计算机等级二级C考试试题第一部分计算机基础知识1.下面关于通信技术的叙述中,错误的是___1_d_ 。
A.任何一个通信系统都有信源、信道和信宿这三个基本组成部分,B.为了实现远距离传输信息,在模拟通信和数字通信中均采用载波技术C.为了降低传输信息的成本,在通信中广泛采用多路复用技术D.数字通信系统的一个主要性能参数是信道带宽,它指实际进行数据传输时单位时间内传输的二进位数目2.在下列有关集成电路及其应用的叙述中,错误的是___2__b 。
A.集成电路的制造工序繁多,工艺复杂且技术难度高B.经过抛光后的硅片称为晶圆,每个晶圆最多可以制成一个合格的集成电路芯片C.IC卡分为接触式IC卡和非接触式IC卡,后者通常又称为射频卡或感应卡D.集成电路应用十分广泛,目前我国第2代居民身份证中就有集成电路芯片3.在下列有关数字技术的一些叙述中,错误的是_____3c____ 。
A.数字技术是采用有限个状态(例如"0"和"1")来表示、处理、存储和传输信息的B.在逻辑代数中,1与1进行逻辑加(V)和逻辑乘(^)的结果相同C.任何一个十进制数,均可以精确地转换成等值的二进制数D.在PC机中,通常用原码表示正整数、用补码表示负整数4.在下列有关PC机主机的叙述中,错误的是___4b__ 。
A.BIOS和CMOS存储器安装在主板上,普通用户一般不能自己更换B.由于PC机主板的物理尺寸等没有标准化,所以不同PC机的主板均不能互换C.芯片组是PC机各组成部分相互连接和通信的枢纽,一般由2块VLSI芯片组成D.芯片组决定了主板上所能安装的内存最大容量、速度及可使用的内存条类型5.在下列4个Intel微处理器产品中,采用双核结构的是_____5a_____ 。
A. Core 2 Duo B.Pentium PRO C.Pentium III D.Pentium 46.在下列四种PC机主存储器类型中,目前常用的是_____6__d___ 。
C语言中考试题2010

2010级计算机班C语言程序设计试题姓名:__________ 得分:_____一、填空(30分)1、计算机执行的指令实际上是二进制的____和____的集合。
2、C语言总是从___________开始执行的,每条语句均以________结束。
3、C语言是一种结构化程序设计语言,结构化程序有3种基本结构,即____________、___________、___________。
4、y=x3-3x2-7写成C语言表达式为_________________。
5、若a=7,b=6,c=12,则表达式“a+b<c&&a>b”的值为________。
6、关系表达式是用___________连接两个表达式组成的式子。
二、选择(30分)1、以下叙述中,正确的是()A.构成C程序的基本单位是函数;B.可以在一函数中定义另一个函数;C.main函数必须放在其他函数之前;D.所有被调用的函数一定要在调用之前进行定义。
2、设有变量定义:int i,j; 欲使这些变量有值:i=2,j=4,并有以下函数调用:scanf(“i=%d,j=%d”,&i,&j); 问键盘上应如何输入()A.i=2j=4B.i=2,j=4C.2,4D.2 43、要在程序中使用getchar()函数,应在程度开头用#include包含以下哪个头文件()A.stdio.hB.math.hC.string.hD.time.h4、要在程序中使用数学函数sqrt(),应在程度开头用#include包含以下哪个头文件()A.stdio.hB.math.hC.string.hD.time.h5、已知a=7,b=8,c=9,则执行下列程序段后,a、b、c的值是()if(a>c) { a=b;b=c;c=a; }else { a=c;c=b;b=a; }A.9,9,8B.9,8,7C.9,8,9D.9,7,86、有以下程序段:if(x>y) z=1;else if(x>0) z=2;else z=3;要得到z=2的结果,满足条件的一组数是( )A.x=-1,y=-2B.x=-2,y=-1C.x=2,y=1D.x=2,y=37、如果x大于1并且小于或等于10,则为真,否则为假,正确的表达式是()A.1<x<=10B.x>1||x<=10C.x>1&&x<=10D.x>1&&x<108、以下表达式中满足“当x的值为偶数时值为真”的是()(1)!x%2!=0 (2)x%2==0 (3)(x/2*2-x)==0 (4)!(x%2)A. (1)(2)(3)B.(2)(3)(4)C. (1)(3)(4)D. (1)(2)(4)9、下列表达式中值为真的有()A.a=0 B.b=3>4 C.b=3+4==5 D.(float)1/210、下列表达式中不正确的有()A.n>7B.ch!=’’C.x>=8.6D.x+y=8三、程序填空(10分)1、以下程序可实现从键盘输入两数a、b并输入其中较大者的功能(不考虑相等的情况)。
2010年上学期C语言作业
2010年上学期C语言作业2011年上学期C语言作业习题11.1 请根据自己的认识,写出C语言的主要特点。
●C语言是一种高级语言,不依赖具体的机器,同时表达方式采用人们熟悉的数学形式,更加容易阅读和理解。
●C语言语言简洁数据类型丰富表达能力强运算符丰富而且用法灵活控制流程和数据结构新颖程序结构性强可读性强●C语言既具有高级语言程序设计的特点,又具有汇编语言的的功能,既能有效进行算法描述,又能对硬件进行直接操作既适合于开发软件有适合于编写应用程序1.2 C语言的主要用途是什么? 它和其他高级语言有什么异同?C语言的用途是既可以用来编写应用程序也可以用来开发软件●区别:C语言既具有高级语言程序设计的特点,又具有汇编语言的的功能,既能有效进行算法描述,又能对硬件进行直接操作既适合于开发软件有适合于编写应用程序1.3 写出一个C程序的构成。
C语言有由数据类型表达式控制结构函数数组字符串指针机构体和共用体1.4 C语言以函数为程序的基本单位,有什么好处?习题22.1 请将c语言的数据类型和其他高级语言的数据类型做比较。
c 有哪些特点?C语言数据类型很丰富2.2 C语言为什么要规定对所有用到的变量要“先定义,后使用”。
这样做有什么好处?因为不同的数据类型所占用的内存空间不同好处:可以节约宝贵的内存空间2.3 请将下面各数用八进制和十六进制数(补码)表示:(1)100101(2) 32010000(3) 75(4) -617 (5) -111 (6) 2483 (7) -28654 (8) 21003八进制十六进制补码1.012 0XA 01012.040 0X20 0100003.0111 0X2B 010010114.-0151 0X-269 101100101105.-0157 0X-6F 100100006.04663 X9B3 010*********7.-067756 0X-6FEE 10010000000100018.051013 0X520B 0101001000001011 2.4 将以下3个整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。
(2010年级)上机考试试卷A(C++下)
信息学院10年级计算机科学基础II上机试卷A(考试时间70分钟卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP文件和*.dat文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的.CPP文件和.dat文件。
一、改错题(50分)【要求】调试程序,修改其中的语法错误及逻辑错误。
只能修改、不能增加或删除整条语句。
请在修改行的末尾用“注释符号//+序号”表示此行修改过,如//3。
【注意】一行中的多个错误算一处错误。
源程序以“学号f1.cpp”命名,存入自己学号文件夹中。
【题目】修改以下程序中的逻辑错误和语法错误(共10处)。
【含错误的源程序】#include<iostream>#include<fstream>#include<cstring>using namespace std;#define M 4class fruit{ string name; //水果名称string shape; //水果形状string color; //水果颜色double weight; //水果均重double *price; //指向一年中每个季度水果的均价public:fruit( string N="#", string S="#", string C="#", double W=0, double *P=NULL ){ name=N; shape=S; color=C; weight=W; price=P; }~fruit( ){ if ( !price ){ delete price; }}fruit( fruit& F ){ name=;shape=F.shape;color=F.color;weight=F.weight;if( price ){ price=new double(M);for( int i=0; i<M; i++ )price[ i ]=F.price[ i ];}else price=F.price;}void setprice(){ if( price ){ cout<<"请输入每个季度"<<name<<"的均价:\n";for( int i=0; i<M; i++ )cin>>price[M];}}};int main(){ double *price_melon = new double[ M ];ifstream myfile("thisfile.txt");if( !price_melon && !myfile ) { cout<<"文件打开失败或内存分配失败\n"; exit(1); }fruit strawberry;fruit melon( "watermelon", "sphere", "black and green", 8.5, price_melon );melon.setprice();fruit Dongtai_melon(melon);for(int i=0;i<M;i++){ myfile>>price_melon[i]>>'\t'; //输出到文件}myfile.close;return 0;}二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。
2010年计算机等级考试二级C语言上机习题汇总
青年人网站计算机栏目编辑http://www.qnr.cn/pc/ 2010年计算机等级考试二级C语言上机习题(1) 一、改错题
【分析】:改错题的错误一般可分为两类,一类是语法错误,这类错误可通过调试程序改正,较容易;另一类是逻辑错误,这类错误程序能运行,但结果不正确,这类错误相对较难,修改前必须要看懂和理解程序。
#include"stdio.h" #define n 4 #define m 3 /*语法错,#define m 3需另起一行*/
int a[n][m],s[m]; p(int j)/*此函数的功能为:找出a数组中第j列的最小元素的值及行号,函数成功运行后,i中即为j列的最小元素的行号,s[j]中即为j列的最小元素的值*/
{int k,i,x; x=a[0][j];i=0; /*逻辑错,从函数的功能可知,a[0][j]也应赋值给s[j],所以x=a[0][j]应改为s[j]=x=a[0][j]*/
for(k=1;k if(a[k][j] 青年人网站计算机栏目编辑http://www.qnr.cn/pc/ {i=k;s[j]=x=a[k][j];}
return i; } main() {int index[m],i,j,k; for(i=0;i for(j=0;j scanf("%d",a[i][j]);/*语法错,但编译时不会报错,scanf语句的一般形式为scanf(格式控制,地址表列),所以a[i][j]应改为&a[i][j])*/
for(j=0,j {index[j]=p[j]; printf("a[%d,%d]=%d\n",index[j],j,s[j]); } i=s[1];k=0; /*逻辑错,数组s中存放的是a数组中每一列的最小值,比较时应从数组的第0个元素开始,而下面的for循环是从第1个元素开始的,所以i=s[1]应改为i=s[0]*/ 青年人网站计算机栏目编辑http://www.qnr.cn/pc/ for(j=1;j<>
2010.10c语言试题
中国自考人()——700门自考课程永久免费、完整在线学习快快加入我们吧!全国2010年10月高级语言程序设计(一)试题课程代码:00342一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.用户自定义标识符正确的是( )A.3abB.intC.fa2_aD.sin(x)2.关于C语言程序描述正确的是( )A.函数必须要有return语句B.主函数必须位于程序的开头C.程序中每行只能写一条语句D.一个程序中只能有一个主函数3.设int i=8,a,b;double x=1.42,y=5.2;,正确的表达式是( )A.a+=(b=4)*(a=3)B.a=a*3=2C.x%(-3)+y* *3D.y=float(i)4.设int a[][2]={1,2,3,4,5,6,7};,其中缺省的行长度的最小值是( )A.2B.3C.4D.55.设char c=′A′;int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( )A.0和1B.1和0C.1和65D.2和666.设typedef char STRING[255];STRING*s;,则s是( )A.字符数组B.字符变量C.字符指针数组D.字符指针变量7.设int x=6;,执行语句X+=X-=X*X;后,x的值是( )A.-60B.0C.6D.368.设int i=3,j=3;,表达式i+++j的值是( )A.6B.7C.8D.9第 1 页9.下列为C语言保留字的是( )A.realB.longC.pointerD.integer10.设int a=2,b=6,c=8;,表达式(a,b),(c,10)的值是( )A.2B.6C.8D.1011.变量定义并初始化正确的是( )A.int a=l,*p=a;B.int a=2,p=*a;C.int a=3,p=&a;D.int a=4,*p=&a;12.使用递归函数计算n!(n=0,1,2,,3,....)的是( )A. fac(int n)B. fac(int n){int i,f=- 1; {if(n==0) return 1; if(n==0‖n==1) return 1;else for(i=1 ;i<=n;i++) f*=i; else return n*fac(n-1);return f; }}C. fac(int n)D. fac(int n){int i=l,f=l; {int i=1,f=1;if(n==0) return l; if(n==0) return 1;else while(i<=n) f*=i++; else do { f*=i;}while (i++<n) return f; return f;} }13.设struct{int age;int num;}stu,*p=&stu;对结构型变量stu的成员age引用错误..的是( )A.stu.ageB.p->ageC.*p.ageD.(*p).age14.设int a[2]={1,2},*p=a;,则*p是( )A.元素a[0]的值B.元素a[0]的地址C.元素a[1]的值D.元素a[1]的地址15.设int a[10];,对数组元素引用正确的是( )A.a[10]B.a[′0′]C.a(6)D.a[10-10]第 2 页二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010年第1次全国高等学校(重庆考区)
C语言上机考试题(第1套)
1.(35分)函数fun的功能是将从键盘输入的多个英文单词(各单词用空格分隔)中每个单词
的第一个字母转换为大写。请编写fun函数和测试用的主函数。源程序存入test11.c。
2.(35分)下面程序是输出如图所示的字符图形。请输入程序并填空,源程序存入test12.c。
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGG
HHHHHHH
I I I I I
JJJ
K
3.(30分)下面程序的功能是:将从键盘输入的一个数插入到元素值按升序排列的数组中,插
入后保持数组仍然按升序排列。请输入程序并改正程序中带"*"的行中的错误,使它能够正确地
输出结果。源程序存入test13.c。
#include
void main()
{ int data,k;
static int a[9]={-10,2,4,8,10,15,25,50};
* scanf((“%d”,data);
* for(k=8;k>=0;k++)
{ if(data>a[k-1]||k==0)
{ a[k]=data;
* continue;
}
else
a[k]=a[k-1];
}
for(k=0;k<=8;k++)
printf(“%4d”,a[k]);
putchar(„\n‟);
}
#include
#define M 6
void main()
{ int i,j;
char a=‟A‟;
for(i=1;i<=M;i++)
{ for(j=1;j<=M-i;j++) putchar(„ „);
for(j=1;jputchar(„\n‟);
①
}
for(i=1; ② ;i++)
{ for(j=1;j<= i;j++) putchar(„ „);
for(j=1;j<(M-i)*2;j++) putchar(a);
putchar(„\n‟);
a++;
}
}