2012级面向过程程序设计(C语言)( A卷 闭卷)(1)

合集下载

2012年上半年浙江省高等学校计算机等级考试 二级C程序设计试卷

2012年上半年浙江省高等学校计算机等级考试 二级C程序设计试卷

2012年上半年浙江省高等学校计算机等级考试二级C程序设计试卷说明:⑴本试卷共6页,满分100分;考试时间为90分钟;⑵考生应将所有试题的答案填写在答卷上;⑶程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“√”;⑷请将你的准考证号的后五位填写在答卷右下角的指定位置内。

一、程序阅读与填空(24小题,每小题3分,共72分)1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输入一个正整数m,判断它是否为素数。

素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

运行示例:Enter m:99 is not a prime.Enter m:7979 is a prime.【程序】#include <stdio.h>#include <math.h>void main(){ int j,k,m;printf("Enter m:");scanf("%d",&m);k=sqrt(m);for(j=2; (1);j++)if( (2)) (3);if(j>k && (4))printf("%d is a prime.\n",m);elseprintf("%d is not a prime.\n",m);}【供选择的答案】(1)A、j>k B、j<=k C、j>m D、j<n(2)A、m%j==0 B、m%j=0C、m%j!=1D、m%j==1(3)A、return B、break;C、goD、continue(5)A、m==1 B、m!=2C、m!=1D、m==22.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输一个正整数n1,再输入第一组n1个数,这些数已按从小到大的顺序排列,然后输入一正整数n2,随即输入第二组n2个数,它们也按从小到大的顺序排列,要求将这两组数合并,合并后的数应按从小到大的顺序排列。

C语言期末双面试卷B (1)

C语言期末双面试卷B (1)

三亚学院 2012/2013 学年春季学期《C语言与程序设计》期末考试B卷适用对象:12级信息管理与信息系统专业答题时间:120 分钟考试形式:闭卷(共40分,每题2分)1.一个C语言程序是由( C )组成的。

A主程序 B 子程序 C 函数 D 过程2.执行下面语句的结果为( C )。

y=10;x=y++;A x=10,y=10B x=11,y=11C x=10,y=11D x=11,y=103.下列程序的输出结果是( A )。

#include <stdio.h>void main(){int x=2,y=3;printf("x=%d,y=%d",x,y);}A.x=2,y=3 B.x=%2,y=%3C.x=%%d,y=%%d D.x=%d,y=%d4.不是C语言中基本数据类型为(C)。

A.整型B.实型C.集合型D.字符型5.表示关系12<=x<=y的C语言表达式为:( A )A.(x>=12)&(x<=y) B.(x>=12)&&(x<=y)C.(12<=x)|(x<=y)D.(12<=x)||(x<=y)6.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式是( B )。

A.a<>0 B.!a C.a=0 D.a7.配合switch语句使用,作用是控制结束某个case分支的执行的语句是( A )。

A.break B.if C.end D.exit8.执行语句:for(i=1;i++<4;);后,变量i的值是(B)。

A.3 B.4 C.5 D.不定9.如下程序段执行后输出(B )。

#include <stdio.h>void main(){ int num=0;while(num<=2){ num++;printf("%d ",num);}}A.1 2 3 4 B.1 2 3 C.1 2 D.110.设x=1,y=2,m=4,n=3,则表达式x>y?x:m<n?y:n的值为:( B )A.1 B.3 C.2 D.411.以下正确的函数定义是:( A )A.double fun(int x, int y) B.double fun(int x,y){ z=x+y ; return z ; } { int z ; return z ;}C.fun (x,y) D.double fun (int x, int y){ int x, y ; double z ; { double z ;z=x+y ;z=x+y ; return z ; } return z ; }12.C语言规定,调用函数时,简单变量做实参时,实参变量与形参变量之间的数据传递是(A)A.地址传递B.值传递C.由实参传给形参D.由用户指定传递方式13.以下不正确的说法为(D)。

2012级C++面向对象程序设计试题A-计算机学院2013夏-参考答案

2012级C++面向对象程序设计试题A-计算机学院2013夏-参考答案

2012-2013学年第2学期2012级《C++面向对象程序设计》期末考试试题(A卷)考试时间:2013年6月26日参考答案一、单选题(共12分,每题2分)D C (B) B B A二、判断正误,对于你认为错误的论述,说明原因或举出反例。

(共20分,每题2分)1.代码double dval; float *pi = &dval; 中会发生隐式类型转换,因此不存在语法错误。

错误。

Double占8字节,float 占4字节,转换是不安全的,不会发生隐式转换,而是语法错误。

2.已知类A,且语句const A a; a.fun( );是合法的,则fun( )一定是常成员函数。

错误。

如fun()是A中的静态成员函数。

3.类B继承类A,那么sizeof(B)的值大于sizeof(A)的值。

错误。

是大于或等于4.单参构造函数一定可以被用来执行隐式类型转换。

错误。

不一定。

如用explicit修饰的构造函数,或私有的,或只声明但没有实现的。

5.类中没有声明虚函数,则不会为该类生成虚拟表。

错误。

不一定。

如基类中有虚函数,则在创建该类对象时,仍会生成虚拟表。

6.异常必须在其产生的当前函数中捕获,而不能在外层函数中捕获该异常。

错误。

可以。

如try { f( ); } catch(…) {}, 如果f()中没有try_catch结构,f( )产生的异常可以被catch(…)捕获。

7.由于抽象类不能实例化,但能派生新类,所以抽象类中的构造函数和拷贝构造函数应该是protected的。

错误。

抽象类表示一种泛化关系,其接口函数应在子类中存在,以保证接口的一致性。

特别的,构造函数和拷贝构造函数应为public。

8.虚函数可以访问虚函数和非虚函数,但非虚函数不能访问虚函数。

错误。

非虚函数的非静态函数可访问虚函数。

9.重载的析构函数应与重载的构造函数一一对应。

错误。

析构函数不能重载。

10.假设类A及其祖先类中均不含有指针型或引用型数据成员,执行代码块{ A a; A b(a); }时,即便使用类A的缺省拷贝构造函数也可能造成内存泄露。

C语言程序设计2012 (含答案)(1)

C语言程序设计2012 (含答案)(1)

12年的试题比13年的难很多,笔者费了一早上加一中午才全部做完。

如果对答案有疑问或者觉得哪里有问题请联系我qq553915228 李添锐一、写出下列程序段的运行结果(40分)1、(4分)char a='D'-'A',b='\010',c,d;c = ++a || b++;d = a-- && b--;printf("%d,%d,%d,%d",a,b,c,d);输出:3,7,1,12、(4分)char a=0x123FFF;printf("%d,",a);a=127;printf("%d",++a);输出:-1,-1283、(4分)int a=5,y=0;int main(){while(a=5){a+=5;y+=a;printf("%d,%d,", a, y);if (y>18) break;}return 0;}输出:10,10,10,204、(4分)int i=1, j=2, k=4;printf("%f,", i-(float)j/k);printf("%d,", j>1<k);k+=5/10*i ;printf("%d,",k);printf("%d", (j=1)?2:0);输出:0.500000,1,4,25、(4分)int a[][2]={(1,2),(3,4)};printf("%d",a[0][1]);输出:46、(4分)int ave(int x, int y){return (x+y)/2;}int main(){int a=1, b=2, c=3;printf("%d\n",ave(ave(a,b), ave(b,c)));return 0;}输出:1(\n)7、(4分)void exc(int x, int *y){int t;t=x; x=*y; *y=t;}int main(){int a=5,b=8;exc(a,&b);printf("a=%d,b=%d",a,b); return 0;}输出:a=5,b=58、(4分)char str[10]="believe";char *p=str;*(str+5)=0;puts(2+p);输出:lie9、(4分)struct pt{int x; int y;} p[2]={1,3,5,7}; printf("%.3f",p[1].y/(float)p[0].y+ p[1].x/p[0].x);输出:7.33310、(4分)FILE *fp;char c=49;int d=50, e;fp=fopen("a.tmp","w"); fprintf(fp,"%c%d", c, d); fclose(fp);fp=fopen("a.tmp","r"); fscanf(fp,"%d",&e); printf("%d\n",e);输出:150(\n)二、改错题(20分)以下程序实现:从键盘输入若干个学生的成绩数据,将这些数据存到磁盘文件上,并求这些学生的最高成绩。

2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报

2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报

(1)下列链表中,其逻辑结构属于非线性结构的是_________。

A)双向链表B) 带链的栈 C) 二叉链表D) 循环链表(1)C 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps 中第13张说明:链表存储结构是数据的存储结构;排除链表因素,从数据逻辑结构来看,线性结构包括线性表、栈和队;非线性结构包括树形结构和图形结构,所以二叉树是树形结构,即非线性结构。

(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 20 B) 0或35 C) 15 D) 16(2)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第100-101张关于入队(Q.rear=Q.rear+1)与退队(Q.front=Qfront+1)运算规则,此外第一次入队为Q.rear=1;第一次退队为Q.front=1。

并假定循环队列最大个数为maxsize,其相应存储空间为1: maxsize,则循环队列的入队与退队图例和运算后元素个数的确定原则如下:循环队列中的元素个数或称队列长度通用计算公式:(Q.rear-Q.front+ maxsize)% maxsize 例如,Q.rear=20,Q.front=15,则循环队列中的元素个数=(20-15+35)%35=5;Q.rear=40,Q.front=15,则循环队列中的元素个数=(40-15+35)%35=25;本题根据Q.rear=Q.front=15,maxsize=35,则循环队列中元素个数=(15-15+35)%35=0或35;(3)下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈操作遵循先进后出的原则C) 栈顶元素一定是最先入栈的元素D) 以上三种说法都不对(3)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第63张幻灯片说明:栈元素入、退原则:先进后出(FILO)或后进先出(LIFO)。

高级语言程序设计C(2012级A卷)

高级语言程序设计C(2012级A卷)

A 卷)一、简答题(单选,每题5分,共15分)1、什么是内存泄漏?如何防止?2、带参数的宏与函数有什么区别?3、文本文件与二进制文件有何区别?2分,共40分)) A) x1=26.8%3 B) 1+2=x2 C) x3=0x12; D) x4=1+2=3; (2) 设有以下定义 int a=0;double b=1.25; char c='A'; #define d 2则下面语句中错误的是( )A) a++; B) b++; C) c++; D) d++;(3) 设有定义:float a=2,b=4,h=3; ,以下C 语言表达式与代数式计算结果不相符的是( ) A) (a+b) *h/2 B) (1/2)*(a+b) *h C) (a+b) *h*1/2 D) h/2*(a+b) (4) 有以下程序 main( ) {int x=102,y=012; printf("%2d,%2d\n",x,y); }执行后输出结果是( )A) 10,01 B) 02,12 C) 102,10 D) 02,10(5) 以下4个选项中,不能看作一条语句的是( ) A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;(6) 设有定义:int a,*pa=&a; 以下scanf 语句中能正确为变量a 读入数据的是( ) A) scanf("%d",pa) ; B) scanf("%d",a) ; C) scanf("%d",&pa) ; D) scanf("%d",*pa) ; (7) 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是( ) A) if((a>b) &&(b>c) ) k=1; B) if((a>b) ||(b>c) ) k=1 else k=0;C) if(a<=b) k=0; D) if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; (8) 有以下程序 main( ){ char k; int i;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()A) another B) another C) another D) numbernumber number number numberanother number(9) 有以下程序main( ){ int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是()A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5(10) 有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf("%d\n",s);} 程序执行后的输出结果是()A) 自然数1~9的累加和B) 自然数1~10的累加和C) 自然数1~9中的奇数之和D) 自然数1~10中的偶数之和(11) 有以下程序main( ){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;} while(!i);n++;}printf("n=%d\n",n);}程序执行后的输出结果是()A) n=5 B) n=2 C) n=3 D) n=4(12) 若程序中定义了以下函数double myadd(double a,double B){ return (a+B) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A) double myadd(double a,B) ; B) double myadd(double,double);C) double myadd(double b,double A) ; D) double myadd(double x,double y);(13) 有以下程序char fun(char x , char y){ if(x<y) return x;return y;}main( ){ int a='9',b='8',c='7';printf("%c\n",fun(fun(a,b) ,fun(b,c) ));}程序的执行结果是()A) 函数调用出错B)8 C)9 D)7(14) 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A) p=1; B) *q=2; C) q=p; D) *p=5;(15) 有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);else f(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是()A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1(16) 有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是()A) 5 B) 6 C) 8 D) 9(17) 有以下程序main( ){ char a[]="abcdefg",b[10]="abcdefg";printf("%d %d\n",sizeof(a) ,sizeof(b) );}执行后输出结果是()A) 7 7 B) 8 8 C) 8 10 D) 10 10(18) 有以下程序void swap1(int c[]){ int t;t=c[0];c[0]=c[1];c[1]=t;}void swap2(int c0,int c1){ int t;t=c0;c0=c1;c1=t;}main( ){ int a[2]={3,5},b[2]={3,5};swap1(a) ; swap2(b[0],b[1]);printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); }其输出结果是()A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3(19) 有以下程序void sum(int *a){ a[0]=a[1];}main( ){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--) sum(&aa[i]);printf("%d\n",aa[0]);}执行后的输出结果是()A) 4 B) 3 C) 2 D) 1(20) 有以下程序int f(int b[][4]){ int i,j,s=0;for(j=0;j<4;j++){ i=j;if(i>2) i=3-j;s+=b[i][j];}return s;}main( ){ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a) );}执行后的输出结果是()A) 12 B) 11 C) 18 D) 16三、程序填空题(每空2分,共20分)void f( int y,int *x) {y=y+*x; *x=*x+y;}main( ){ int x=2,y=4;f(y,&x);printf("%d %d\n",x,y);}执行后输出的结果是【1】。

南京信息工程大学试卷2011-2012学年第二学期C语言程序设计试卷(理科)及答案-A

南京信息工程大学试卷2011-2012学年第二学期C语言程序设计试卷(理科)及答案-A

南京信息工程大学试卷(理工科)2011 - 2012 学年第 2学期C语言程序设计课程试卷( A 卷) 本试卷共 8 页;考试时间 120分钟;任课教师课程组;出卷时间 2012 年 6月学院专业2011 年级班学号姓名得分一、单项选择题 (每小题 1分,共 15分)1.C语言规定:在一个源程序中,main的位置A)必须在最开始 B)必须在系统调用的库函数后面C)可以任意 D)必须在最后2.下面四个选项中,均是合法的用户标识符的选项的是A) A p_o do B)float lao _AC) b-a goto int D) _123 temp INT3.判断字符型变量c1是否为大写字母的正确表达式为A)’A’<=c1<=’Z’ B)(c1>=A)&&(c1<=Z)C)(‘A’>=c1)||(‘Z’<=c1) D)(c1>=’A’)&&(c1<=’Z’)4.表达式18.0/4*sqrt(4)/8值的数据类型为A)float B)charC)double D)不确定5.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是A)7 B)8 C)6 D)26.若对两个数组a和b进行初始化char a[]="ABCDEF";char b[]={'A', 'B', 'C', 'D', 'E', 'F'};则下列叙述正确的是。

A) a与b数组完全相同B) a与b数组长度相同C) a与b数组都存放字符串 D) 数组a比数组b长度长7.若定义x为长整型变量,则能正确输入x值的语句是。

A)scanf(“%d”,x); B)scanf(“%d”,&x);C)scanf(“%ld”,&x); D)scanf(“%ld”, x);8.以下正确的函数定义是。

C语言习题答案2012年版

C语言习题答案2012年版

习题答案习题1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。

算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。

通俗地讲,就是计算机解题的步骤。

算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。

2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。

一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。

3.简述高级程序设计语言中面向过程与面向对象的概念。

“面向过程”是一种以过程为中心的编程思想。

首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。

一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。

“面向对象”是一种以事物为中心的编程思想。

面向对象的方法主要是将事物对象化,对象包括属性与行为。

面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。

编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。

4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。

(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。

(3)数据类型丰富。

C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。

2012年7月C语言试卷A

2012年7月C语言试卷A

青海大学试卷(A卷)系别:班级:学号:姓名:考试课程:程序设计基础(C)考试日期:2012 年7月06日注:所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回一.填空题(每空1分,共16分)1.整型静态数组没有初始化,也没有赋值,此时数组元素的值均为。

2.数组在内存中占的存储区,用代表其首地址。

3. 在函数内部定义的只在本函数内有效的变量叫,在函数以外定义的变量叫。

4.调用一个函数时,实参变量和形参变量之间的数据传递是;若用数组名作为实参,则实际上传递给形参的是。

5. 有这样的定义:static int a[5]={2,4,6,8,10};int *p;p=&a[0];则与p=&a[0]等价的语句,*(p+1)的值是,*(a+3)的值是。

6.有说明char s1[40],s2[20]= "you are a teacher.";如果想从键盘上把字符串"I am a student."输入到数组s1中,函数调用的语句是。

能把s2中的字符串接到s1中的字符串后面的函数调用的语句是。

7.C语言中逻辑运算符的优先级高于算术运算符。

8.在C语言中,声明枚举类型用关键字开头。

9.在C语言中,文件的存取是以为单位的,这种文件被称作文件。

二.选择题(每小题2分,共40分)1.可以在C语言中用做用户标识符的是()。

A.else B.a_b1C.for D.2cd 2.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()。

A.1 B.2 C.2.0 D.2.53.以下程序的输出结果是()。

main( )页脚内容- 1 -{ int m=10;printf("%d,%d,%d",--m,++m,++m);}A.9,10,11 B.10,10,11 C.9,12,11 D.11,12,114.C语言中,逻辑"真"等价于()。

2012WINCE程序设计A卷答案

2012WINCE程序设计A卷答案
{
COMMTIMEOUTS CommTimeOuts;
//打开串口
m_hComm=CreateFile(Port,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
if(m_hComm==INVALID_HANDLE_VALUE)
{
MessageBox(_T(“无法打开端口或端口已打开”));
CEDDK还提供了函数MmMapIoSpace用来把一段物理内存直接映射到虚拟内存。用MmMapIoSpace申请的内存要用MmUnmapIoSpace释放。其实,MmMapIoSpace函数内部也是调用VirtualAlloc和VirtualCopy函数来实现物理地址到虚拟地址的映射的。
此外,Windows CE还供了AllocPhysMem函数和FreePhysMem函数,用来申请和释放一段连续的物理内存。函数可以保证申请的物理内存是连续的,如果函数成功,会返回虚拟内存的句柄和物理内存的起始地址。这对于DMA设备尤为有用。
If(!SetCommTimeouts(m_hComm,&CommTimeOuts))
答:在Windows CE下,无论是驱动程序还是应用程序都可以通过API访问某一段物理内存。
Windows CE在ceddk.h中定义了物理内存结构体PHYSICAL_ADDRESS。
如果要直接访问某一个地址的物理内存,Windows CE提供了VirtualAlloc()和VirtualCopy()函数。VirtualAlloc负责在虚拟内存空间内保留一段虚拟内存,而VirtualCopy负责把一段物理内存和虚拟内存绑定,这样,最终对物理内存的访问还是通过虚拟地址进行。VirtualAlloc对虚拟内存的申请分为两步,保留MEM_RESERVE和提交MEM_COMMIT。其中MEM_RESERVE只是在进程的虚拟地址空间内保留一段,并不分配实际的物理内存,因此保留的虚拟内存并不能被应用程序直接使用。MEM_COMMIT阶段才真正的为虚拟内存分配物理内存。

华科2012级信息学院C语言试卷(A)

华科2012级信息学院C语言试卷(A)

2012级信息学院《C语言程序设计》试卷(闭卷)一、判断下列语句或程序的对错。

(“×”表示错,“√”表示对)(10分)( 1) char ch=’55’; ( )( 2 ) unsinged int a=b=c=5; ( )( 3) int a=2,*p; p=&a;printf(”%d”, *&a); ( )(4) int a[5][5], (*p)[5]; ()p=&a[0][0];(5) char a=’a’,c;( )c=a++;(6) int n; scanf(”%d”,&n); ( )int a[n];(7) int a[10],*p; ( )p=a+2;(8) int a,b; ( )scanf(”%d,%f”,a,b);(9) float a=1, *b=&a, *c=&b; ( )(10) char str[]={”World”};( )printf(”%c”,*(str+2));二、计算下列表达式的值(10分)设int x=3,y=-4,z=4;float k=3.5;(1)x++-y+++z ( )(2)y>z||z>2&&x++ ( ) (3)x|z&x^z ( )(4)x-y+!z-1&&x+y/2 ( )(5)y+(x/3*(int)(x+k)/2)%4 ( )三、改错,根据题意改正下列程序的错误和漏掉的部分(10分)(1)输入球体半径r,求其体积.#include “stdio.h”;define pi=3.1415926;float volume(int r);void mian(){float r,v;scanf(“%d”, r);v= volume(r);printf(“%d”,v);}float volume(int r);{v=4/3*pi*r*r*r;return v;}(2)利用指针数组对字符数组中的5个姓名字符串排序,字符数组内容不变。

2012秋C程序设计试卷+问题详解

2012秋C程序设计试卷+问题详解

华南农业大学期末考试试卷(A 卷)2012学年第1学期 考试科目: 程序设计(C 语言) 考试类型:(闭卷)考试 考试时间: 120 分钟学号 姓名 年级专业考生注意:1、答案必须分别写在“机读卡”和“答卷”上,写在试题上不得分。

2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。

3、在机读卡的学生代号区只填写学号后10位。

4、考试结束,只需交“机读卡”和“答卷”,试题不用交。

一、判断题(在机读卡上答题,本大题共20小题,每小题1分,共20分)用2B 型铅笔涂答题卡!!!按题号顺序,正确的判断涂黑“A ”、错误的判断涂黑“B ” 1、C 语言称为中级语言是因为它允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

2、一个C 程序总是从main 函数开始执行,并且从main 函数中结束程序。

3、一个算法具有有穷性、确定性、可行性、有零个或多个输入/输出。

4、在C 程序中使用符号常量,能够增强程序的可读性,方便程序的修改。

5、C 程序中使用变量不一定要遵循“先定义,再赋值,后使用”。

6、C 语言可以通过调用标准库函数实现输入输出功能,也可以使用它本身提供的专门的输入输出语句。

7、能正确表达逻辑关系100≤≤x 的表达式是10||0<=>=x x 。

8、在if 语句中,if 后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。

9、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。

10、带有语句标号的语句的正确书写方法是“语句标号:语句”。

11、for 循环语句只能用于循环次数已经确定的情况。

12、goto 语句和break 语句都能实现使程序执行的流程从循环体内跳至循环体外。

13、while 循环语句至少无条件执行一次循环体。

14、数组必须先定义,然后再使用。

15、定义数组时,数组下标可以是整型常量表达式。

16、已有定义int x[5];,则该定义语句说明x是具有5个元素的一维数组,且数组元素是x[1],x[2],x[3],x[4],x[5]。

2012级C语言期末考试试卷(含答案)

2012级C语言期末考试试卷(含答案)

桂林电子科技大学信息科技学院试卷2012—2013 学年第 2 学期 课号 I04BT014 课程名称 C 语言程序设计 (A 卷;、闭卷) 适用班级(或年级、专业) 12级、全院一 单项选择题(每题2分,共40分)1 一个C 语言程序是从 B 开始执行的.A 程序中第一个函数B 名为main 的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句2 假设在程序中a,b,c 均被定义成整型,并且已赋大于1的值,则下列能正确表示代式A 1/a*b *cB 1/(a *b *c )C 1/a/b/(float )cD 1.0/a/b/c 3 已知int y,a,i=1;,则语句printf (”%d,%d ”,—i++,(y=a=3.6*3));的输出结果为 A 。

A -1,10 B -2,1.8 C 0,3 D 1,18 4 以下程序运行后的输出结果是_B __。

main (){ unsigned short a=65536; int b ; printf(”%d\n ”,b=a ); }A 65536B 0C 1D —15 设a 、b 和c 都是int 型变量,且a=3,b=0,c=5,则以下值为0的表达式是_C __。

A ’a'&&'b ’ B a &&b ||c C a&&b&&c D a||b&&c6 以下程序运行后的输出结果是_D __. main(){ int a=1,b=2,c=3; if (b 〈a )if(b 〈0) c=0; else c++;printf("%d\n ”,c ); }A 0B 1C 2D 3abc1的表达式是__ D __。

main(){ int a=0,b=0,c=0,d=0;if(a=1) b=1,c=2;else d=3;printf(”%d,%d,%d,%d\n”,a,b,c,d);}A 1,1,2,0B 0,0,0,3C 0,1,2,0D 编译有错8 以下程序的执行结果是_B__。

2012下C#试卷(含答案)

2012下C#试卷(含答案)

《C#程序设计》课程期末考试试卷考核方式:(闭卷)考试时量:120分钟一、单项选择题(本大题共15道小题,每小题2分,共30分)。

在每小题列出的四个备选项中只有一个是符合要求的,请将其代码填写在下面的方格内。

1、下面对Read()和ReadLine()方法的描述,正确的是A Read()方法一次只能从输入流中读取一个字符B Read()方法读取的字符不包含回车与换行符C ReadLine()方法读取的字符包含回车与换行符D Read()方法与ReadLine()方法能够返回数值型数据2、设有代码:double x = 66666.66; Console.WriteLine("{0,10:C4}",x);则程序的输出结果为:A ¥66,666.6600B ¥66,666.66C 66,666.6600D 66,666.663、以下标识符中,正确的是A _nNameB typeofC 6bD x5#4、下列类型中,不属于值类型的是:A 整数类型B 布尔类型C 字符类型D 类类型5、结构化程序设计的3种结构是:A 顺序结构,IF结构,FOR结构B IF结构,IF…ELSE结构,ELSE IF结构C WHILE结构,DO…WHILE结构,FOREACH结构D 顺序结构,分支结构,循环结构6、已知a,b,c的值分别是4,5,6,执行下列语句后,判断变量n的值为:if (c<b) n = a + b + c;else if (a+b<c) n = c - a - b;else n = a + b;A 3B -3C 9D 157、下面有关break,continue,goto语句描述正确的是:A break语句和continue语句都是用于中止当前整个循环B 使用break语句可以一次跳出多重循环C 使用goto语句可以方便地跳出多重循环,因而编程时应尽可能多的使用goto语句D goto语句语句必须和标识符配合使用,break语句与continue语句则不然8、假设给出以下代码,try{ throw new DivideByZeroException (); }catch (FileNotFoundException e) { }catch (OverflowException e) { }catch (SystemExcetion e) { }catch() { }finally { }下列哪条代码一定会执行。

2012级C语言期末考试B卷(含答案)

2012级C语言期末考试B卷(含答案)

桂林电子科技大学信息科技学院试卷2012-2013 学年第 2 学期 课号 I04BT014 课程名称 C 语言程序设计 (B 卷;、闭卷) 适用班级(或年级、专业) 12级、全院一 单项选择题(每小题2分,共40分) 1. 一个C 语言程序是从____开始执行的A)程序中第一个函数 B)名为main 的函数 C)包含文件(头文件)的第一个函数 D)程序中的第一个语句2 .已知 int i=65;则putchar(i);printf("%d ",i);printf("%c ",i);的输出结果为____ A) A,65,A B) 65,65,A C) A,A,65 D) A,A,A3. 假设在程序中a,b,c 均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式abc1的表达式是____。

A) 1/a*b*c B)1/(a*b*c) C) 1/a/b/ (float) c D)1.0/a/b/c4 . 若x, y, z 均为整型常量,且a=100, 则执行下列语句后的z 值为____。

x = a++;y= --a;z=x+y-a--;A)100 B)400 C)200 D)3005. 设a 、b 和c 都是int 型变量,且a=3,b=0,c=5,则以下值为0的表达式是 。

A 'a '&&'b 'B a&&b||cC a&&b&&cD a||b&&c 6.下列程序运行后的输出的数据是 。

main(){ int x,y,z; x=y=2; z=3;y=x++-1; printf("%d\t%d\t ",x,y); (3,1) y=++x-1; printf("%d\t%d\n ",x,y); (4,3) y=z---1; printf("%d\t%d\t ",z,x);(2,4) y=--z-1; printf("%d\t%d\n ",z,x);(1,4) }A. 3 1 4 3B. 3 1 3 32 4 1 4 2 4 2 2C. 3 1 4 3D. 2 1 3 27. 以下程序的输出结果是。

2012级C语言程序设计(专科)试卷A及答案

2012级C语言程序设计(专科)试卷A及答案

2012级C语言程序设计(专科)试卷A及答案2012—2013学年度第二学期期末考试《C语言程序设计》试题A参考答案及评分标准2012级非计算机专业专科(理论和上机各26学时) 90分钟2013年6月一、单项选择题(每题2分,共40分)01~10 ABCDD AABCD 11~20 ABBCD ABCCD二、程序阅读填空题(共 10空,每空2分,共20分)(注意:解答本题时请一定注意输出的格式和符号,格式或符号、空格数错则在空不得分)1、8,162、1,00,13、34、15、16、137、i=00000008,j=(7个空格) 98、x=(4个空格)123.46,x=(3个空格)1.2e+029、97\b 10、x=’61’,’141’三、程序改错题(本大题共2小题,每小题5分,共10分)1、第一处:去掉while(r=m%n);后面的分号(2分)第二处:将printf("最大公约数是%d\n",m);中的m改为n(2分)找对二个错处加1分。

2、第一处:int fib(NUM)=(1,1);改为int fib[NUM]={1,1}; (2分)第二处:fib[3]=fib[2]+fib[1];改为fib[i]=fib[i-2]+fib[i-1]; (2分)找对二个错处1分四、编程题(第1小题每题12分,第2小题18分,共30分)1、程序如下:#include "stdio.h"main()int i;unsigned int n;printf("请输入想序输出的整数(负数会按无符号数转换):");scanf("%d",&n);printf("数%u的序数为:",n);while(n>0){printf("%d",n%10);n/=10;}printf("\n");}2、程序如下:#include "stdio.h"#include "math.h"main(){float x1,x2,x0;float f(float x);do{printf("请输入求值区间的上、下界(用空格分隔):");scanf("%f%f",&x1,&x2);if(f(x1)*f(x2)>0)printf("在【%f,%f】此区间内无奇数个解,请重新输入:\n",x1,x2);}while(f(x1)*f(x2)>0);dox0=(x1+x2)/2;if(f(x1)*f(x0)>0)x1=x0;elsex2=x0;}while(fabs(x1-x2)>1e-5);printf("一元方程的一个解是%f",(x1+x2)/2);}2012—2013学年度第二学期期末考试《C语言程序设计》试题(A卷)2012级非计算机专业专科(理论和上机各26学时) 90分钟2013年6月一、选择题(每空2分,共40分)1、对任何C语句必须以结束。

2012年3月全国计算机等级考试二级笔试试卷 C语言程序设计

2012年3月全国计算机等级考试二级笔试试卷 C语言程序设计

2012年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是A)循环队列是队列的一种顺序存储结构B)循环队列是队列的一种链式存储结构C)循环队列是非线性结构D)循环队列是一直逻辑结构(2)下列叙述中正确的是A)栈是一种先进先出的线性表B)队列是一种后进先出的线性表C)栈和队列都是非线性结构D)以上三种说法都不对(3)一棵二叉树共有25个节点,其中5个时子节点,那么度为1的节点数为A)4 B)6 C)10 D)16(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A)内模式B)外模式C)概念模式D)逻辑模式(5)在满足实体完整性约束的条件下A)一个关系中可以没有候选关键词B)一个关系中只能有一个候选关键词C)一个关系中必须有多个候选关键词D)一个关系中应该有一个或者多个候选关键词(6)有三个关系R、S和T如下:S得到关系T的操作是A)自然连接B)并C)差D)交(7)软件生命周期中的活动不包括A)软件维护B)市场调研C)软件测试D)需求分析(8)下面不属于需求分析阶段任务的是A)确定软件系统的功能需求B)确定软件系统的系能需求(9)在黑盒测试方式中,设计测试用例的主要根据是()。

A)程序外部功能B)程序内部逻辑C)程序数据结构D)程序流程图(10)在软件设计中不使用的工具是()。

A)系统结构图B)程序流程图C)PAD图D)数据流图(DFD图)(11)针对简单程序设计,以下叙述的实施步骤正确的是()。

A)确定算法和数据结构、编码、调试、整理文档B)编码、确定算法和数据结构、调试、整理文档C)整理文档、确定算法和数据结构、编码、调试D)确定算法和数据结构、调试、编码、整理文档(12)关于C语言中数的表示,以下叙述正确的是()。

中国海洋大学2012-2013学年C程序设计语言A卷及参考答案

中国海洋大学2012-2013学年C程序设计语言A卷及参考答案
以上每小题10分,意思相近可酌情给分。
三、程序设计:
struct student
{int num;
char name[20];
char sex;
int age;
float score[5];
float ave;
};
struct student stu[30];
void read(struct student st[30]);
if(fabs(x1-x0)>0.00001)y=mysqrt(_______);
else y=x1; return y;}
void main()
{ float x;
printf(“enter x:”);
scanf(“%f”,&x);
printf(“%f”,mysqrt(x,1.0);
}
2、已知head指向单链表的第一个结点,以下函数完成往降序单向链表中插入一个结点,
{intI;
for (i=0;i<30;i++)
scanf(“%d%s%c%d%f%f%f%f%f”,st[i].num,st[i].name,st[i].sex,st[i].age,st[i].score[0],st[i].score[1],
二、程序填空。(每小题10分,共20分)
1、以下程序是应用递归算法求某数a的平方根,请填空。求平方根的迭代公式如下:x1=1/2(x0+a/x0)
#include <math.h>
double mysqrt(double a,double x0)
{double x1,y;
x1=____________;
中国海洋大学2012-2013学年第1学期期末考试试卷及答案
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("x=%d , y=%d\n" , x ,y);
inc();
printf("x=%d, y=%d\n" ,x ,y);
getchar();
}
void inc()
{ static int z=1; //④z
x++; y++; z++;
printf("x=%d , y=%d,z=%d\n" ,x ,y,z);
p课程名称:面向过程程序设计(C语言)( A卷闭卷)
适用专业年级:12级计算机/网络/软件/通信
考试时间:100分钟
题号










总分
统分人签名
题分
10
20
24
14
32
100
得分
考生注意事项:1、本试卷共5页,试卷如有缺页或破损,请立即举手报告以便更换。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。(答案请写在密封线内和答卷正面,否则不记分)
*
**
***
(2)、如果把三个break语句全部删除,屏幕上输出又是什么?
*
**
***
**
***
***
3、#include "stdio.h"
struct student
{
int num;
char name[10];
};
main()
{
int i;
struct student stu[3]={{1,"zhao"},{2,"li"},{3,"cen"}};
fp=fopen("c:\\ff.txt","w+"); //4分
for(i=0;i<=29;i++)
if (stu[i].age<18)
{fprintf(fp,"%s,%d,%lf\n",stu[i].name,stu[i].age,stu[i].math);
}
fclose(fp);
getchar();
if (a[j]<a[i])
{
x=a[j];
a[j]=a[i];
a[i]=x;
}
for(i=0; i<=n-1;i++)
printf("%d",a[i]);
getchar();
}
3、一个学生的信息包含姓名(Name)、年龄(Age)和数学成绩(Score),输入全班(30人)学生的信息,计算全班学生的数学平均成绩并将其输出在屏幕上,另外,将年龄小于18的学生的姓名、年龄和数学成绩输出到文件“result.txt”中。(12分)
int **p=num;
for(i=0;i<=2;++)
{
printf("%d\n",**p++);
printf("%d\n",*num[i]);
}
}
9、以下程序:
#include<stdio.h>
main()
{
int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a; p2=&b;
main()
{
int i, sum = 0;
for ( i=1; i<100; i++ )
{
if (i%13==0)
sum += i;
if ( sum > 100 )
break;
}
printf("i=%d, sum=%d\n", i, sum );
}
2、mystrlen函数的功能是计0;i<=29;i++) //4分
{
gets(stu[i].name);
scanf("%d",&stu[i].age);
getchar();
scanf("%lf",&stu[i].math);
getchar();
sum=sum+stu[i].math;
}
printf("%lf",sum);
if(a<b)
{ p=p1; p1=p2; p2=p;}
printf("%d,%d\n",*p1,*p2);
}
若此程序输入为5,9则输出为___9,5__。
10、执行下面程序段时输出的结果是__abcd__。
main()
{
char s[]="abcdef";
s[4]='\0’;
printf("%s\n",s);
int mystrlen(char *str)
{
int i;
for(i=0;i<str[i]!=‘\0';i++);
return(str[i]+=i);
}
3、下面的程序是求1+2+…+100=?,并将结果输出到屏幕上。
#include <stdio.h>
void main()
{
int _____i,sum=0______;
main()
{
int a=1,b=2;
printf("%d \n",MA(1+a+b));
}
7、执行下面程序段时输出的结果是__24___
#include<stdio.h>
f(int *b, int n)
{
int i,r;
r=1;
for(i=0;i<n;i++) r=r*(*b++);
return r;
#include "stdio.h"
void main() //4分
{
int a[10000],m,n,i,x,j;
scanf("%d",&n);
for(i=0; i<=n-1;i++)
scanf("%d",&a[i]);
for(j=0;j<n-1;j++) //6分
for(i=j+1; i<=n-1;i++)
}
(1)数组f的6个数组元素的值分别是多少?
1 1 2 3 5 8
(2)屏幕上输出结果是多少?
i=0,f[0]=1
i=1,f[1]=1
i=2,f[2]=2
i=3,f[3]=3
i=4,f[4]=5
第2页共5页
2、#include <stdio.h>
void main()
{
int i;
char ch='*’;
}
第1页共5页
main()
{
int x, a[3]={2,3,4};
x=f(a,3);
printf("%d\n",x);
}
8、执行下面程序段时输出的结果是__2 2 5 5 8 8__
#include<stdio.h>
main()
{
int i,a[3]={2,5,8};
int *num[]={&a[0],&a[1],&a[2]};
C. char st[5]= "abc";D. int x(10),y(10);
4、假如有如下声明:int a[]={1,2,3,4,5},*p=a;则第i个数组元素的地址的正确表示为:(D)。
A. &(a+1) B. a++ C. &p D. &p[i]
5、执行语句for(x=0;x<100;x++);最后x的值是B)。
for(i=1;i<=100;++)
sum=sum+_______i____;
__printf("%d",sum)_______________;}
第4页共5页
五、编程题(32分)
1、求1/2!+2/3!+…+(n-1)/n! (1<n<=10)。(10分)
#include“stdio.h”
int ff(int n) //5分
}
三、程序分析题(共24分,每题6分)
1、#include <stdio.h>
main()
{
int i,f[6];
f[0]=f[1]=1;
for(i=2;i<8;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<5;i++)
printf("i=%d,f[%d]=%d\n",i,i,f[i]);
A. 99 B. 100 C. 101 D. 102
二、填空题(共20分,每题2分)
1、与表达式a*=b+8等价的表达式为___a=a*(b+8)__。
2、已知:int s[][3]={1,2,3,4,5,6};则元素s[1][1]的值为_5_。
3、符串“sjzue”占用内存___6__字节。
相关文档
最新文档