贵州大学2012-2013C语言考试A卷 附 重要考点复习资料

合集下载

贵州大学2013年计信学院C++语言程序设计考试复习题汇总

贵州大学2013年计信学院C++语言程序设计考试复习题汇总

象的设计(OOD)、面向对象的测试(OOT)和面向对象
fn1(),没有重载基类的成员函数 fn2(),如何在派生
的软件维护(OOSM)等主要内容。
类的函数中调用基类的成员函数 fn1(),fn2()?
2. if(x=3)和 if(x==3)这两条语句的差别是什么?
答:调用方法为:A::fn1(); fn2();
型结果(实型结构表示范围更大,而且可以准确表示 m<0
函数、拷贝构造函数、重载运算符+、=、+=、[],
时的结果)该如何调用?
尽可能地完善它,使之能满足各种需要
答:源程序:三章(P49)
答:程序如下:
9. 简单说明交换排序的算法思想。
答:交换排序的基本思想是:两两比较待排序序列中的元
素,并交换不满足顺序要求的各对元素,直到全部满足顺
return *this; delete[] itsMyString; itsMyString=new char[itsLen+1]; for(unsigned short i=0;i<=itsLen;i++)
itsMyString[i]=rhs[i]; itsMyString[itsLen]='\0'; return *this; } char & MyString::operator[](unsigned short offset){ if(offset>itsLen)
C++中起着怎样的作用?
态的基础,主要是针对对象的,而构造函数是在对象产生 答:流是一种抽象,它负责在数据的生产者和数据的消费
之前运行的,因此虚构造函数是没有意义的;可以声明虚 者之间建立联系,并管理数据的流动,一般意义下的读操

2012-2013学年第二学期C++程序设计复习提纲

2012-2013学年第二学期C++程序设计复习提纲

一、选择题1.下列关于对象的描述中,错误的是___________。

A.对象是类的别名B.对象是类的实例C.一个类可以定义多个对象D.对象之间通过消息进行通信2.在对字符数组进行初始化时,___________是正确的。

A.char s1[]=”abcd”;B.char s2[3]=”xyz”;C.char s3[][3]={‘a’,‘x’,‘y’};D.char s4[2][3]={”xyz”,”mnp”};3.联合成员的地址值和所占的字节数___________。

A.都相同B.都不同C.前者相同,后者不同D.前者不同,后者相同4.文件包含命令中被包含的文件的扩展名___________。

A.必须为.hB.不能用.hC.必须是.cD.不一定是.h5.下列while循环的次数是___________。

while(int i=0) i--;A.0B.1C.5D.无限6.在函数说明中,下列___________项是不必要的。

A.函数的类型B.函数参数类型和名字C.函数名字D.返回值表达式7.在传值调用中,要求___________。

A.形参和实参类型类型任意,个数相等B.实参和形参类型都完全一致,个数相等C.实参和形参对应的类型一致,个数相等D.实参和形参对应的类型一致,个数相等8.在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用_____比较合适。

A.内联函数B.重载函数C.递归调用D.嵌套调用9.下列有关对函数模板参数的描述,错误的是___________。

A.函数模板是一组函数的样板B.函数模板是定义重载函数的一种工具C.模板函数是函数模板的一个实例D.模板函数在编译时不生成可执行代码10.下列各种函数中,___________不是类的成员函数。

A.构造函数B.析构函数C.友元函数D.复制构造函数11.___________不是构造函数的特征。

A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明12.下述静态数据成员的特性中,___________是错误的。

C语言考试复习资料

C语言考试复习资料

计算机水平考试 (试题1)一. 单项选择题1. 按电子元器件分类,第二代计算机主要是采用_________作为逻辑开关元件。

A.电子管B.中小规模集成电路C.晶体管D.大规模集成电路2. 在下列各种进制的数据中,最大的数是__________。

A.(5F)16B.(88)10C.(136)8D.(1011101)23. 冯.诺依曼原理主要是指___________。

A.运算的精确度B.存储程序和自动控制C.高速度运算能力D.智能化体系结构4. 以下关于计算机语言描述,错误的是__________。

A.在计算机语言中,汇编语言属于低级语言B.FoPro 2.5b for windows 语言、C语言、Fortran 90语言均属于高级语言C.机器语言可以被计算机直接执行D.所有计算机语言程序都必须被编译后才能在计算机上运行5. 以下_________是多媒体计算机必备的设备。

A.视频卡B.打印机C.声卡D.扫描仪6.通常说硬盘的容量为80G,指的是___________。

A.80G bitB.80G byteC.80G个字D.80000个字7.在windows98中相同磁盘不同文件夹之间的文件复制操作可以___________。

A.直接用鼠标将选定文件拖到目标文件夹B.按住Ctrl键后用鼠标将选定文件拖到目标文件夹中C.按住Alt键后用鼠标将选定文件拖到目标文件夹中D.按住shift键后用鼠标将选定文件拖到目标文件夹中8.在windows98中,利用“回收站”可恢复__________上被误删除的文件。

A.硬盘B.软盘C.内存D.光盘9.以下正确的E-mail地址是____________。

B. @ C. spks@ D. @10. 发现软盘有文件已经感染上病毒,以下不能清除病毒的方法是___________。

A.将软盘快速格式化B.用有效的杀毒软件清除该软盘中的病毒C.将软盘全面格式化D.将软盘上所有文件移到硬盘中11. 以下选项中合法的用户标识符是___________。

贵州大学2013级嵌入式系统设计与实例开发期末试卷A

贵州大学2013级嵌入式系统设计与实例开发期末试卷A

得分贵州大学2013--2014《嵌入式系统设计与实例开发系统》期末考试试卷期末考试试卷(A)题 号一二三四五六总分得 分 核分人一、单项选择题:在下列各题中,有四个备选答案,请将其中唯一正确的答案填入括号中。

(本题共15小题,每题1分,共15分 )1、OOD指的是( )位。

A、面向对象分析B、面向对象设计C、面向对象编程D、面向对象调试2、ARM7TDMI采用( )级流水线。

A、1B、2C、3D、43、找出系统存在何种问题后,要找出问题所在并加以解决,应采取( )。

A、功能测试B、系统测试C、系统调试D、集成测试4、为使LPC2290控制器在上电时,能够稳定可靠的工作,系统复位有效电平应至少保持( )毫秒。

A、200B、10C、40D、1005、可将向量中断控制器编程分为FIQ、非向量IRQ和向量IRQ三类,它们的中断优先级别由低至高的顺序为( )。

A、FIQ、非向量IRQ、向量IRQB、非向量IRQ、向量IRQ、 FIQC、FIQ、向量IRQ、非向量IRQD、向量IRQ 、非向量IRQ、FIQ6、LPC控制器工作在( ),系统时钟不工作,系统功耗几乎接近于零。

得分A、空闲模式B、掉电模式C、管理模式D、系统模式7、下列ARM指令中,其源操作数的寻址方式是寄存器寻址方式的是( )。

A、MOV R3,R4B、LDR R1,[R2]C、BEQ LOOPD、MOVR1,#08、ARM指令集和THUMB指令集区别在于( )。

A、ARM指令是32位指令,而THUMB指令是16位指令B、ARM指令是16位指令,而THUMB指令是32位指令C、ARM指令是16位指令,而THUMB指令是8位指令D、ARM指令是8位指令,而THUMB指令是16位指令二、填空题:在下列各题中,将唯一正确的答案填入括号中。

(本题共15小题,每题1分,共15分 )1、从技术的角度定义:嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的。

贵州大学2012-2013C语言考试A卷 附 重要考点复习资料

贵州大学2012-2013C语言考试A卷 附 重要考点复习资料

贵州大学2012-20103学年第一学期考试试卷 AC语言程序设计满分100分,考试时间为120分钟。

一、单项选择题(选出一个正确答案,每小题2分,共20分)1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( )A.连接、编译B. 连接、运行C. 编译、运行D. 编译、连接2.下列说法正确的是()A.一个c语言程序并非总是从主函数位置开始执行的B.一个c语言程序有且只有一个主函数C.函数可以嵌套定义,不可以嵌套调用D.程序函数的位置不可以任意3.下面是合法C语言标识符的是()A. 2A_K;B. _M+N;C. –M3;D. AC_2;4.下列格式符中,可以用于控制字符输出的是( )A. %dB. %fC. %oD. %c5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是( )A. 4;B. 16;C. 30;D. 50;6.执行语句“for(i=1,s=0;i<=5;i++) s+=i;”后,变量s、i的当前值是( )A. 10,5B. 15,6C. 15,5D. 10,67.若有定义 int x,*p;,则以下正确的赋值表达式是( )A. p=x;B. p=&x;C. *p=&x;D. *p=*x;8.以下对结构体类型变量的定义中,不正确的是( )A. typedef struct aaB. #define AA struct aa{ int n;AA { int n; float m; float m; }AA; }stud; AA stud;C. structD. struct { int n; { int n; float m; float m; }aa; }stud; struct aa stud;9.有如下函数调用语句:func(rec1,rec2+rec3,(rec4+rec5)); 函数调用语句中,含有的实参个数是( )A. 3B. 4C. 5D. 以上均不是10.对于以下宏定义: #define SQ(x) x*x#define QQ(x,y) SQ(x)- SQ(y) 宏调用QQ(2*3,2+3)执行后值为( )A.25B.11C.43D.以上均不是二、填空题(每空2分,共20分)1.设int a=5, c=32;float b=2.5;,表达式b+c/a的值为___ ___2.若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是 __。

2012年9月计算机等级考试二级C语言笔试真题及答案

2012年9月计算机等级考试二级C语言笔试真题及答案

2012年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)~(10)、(21)~(40)每小题2分,(11)~(20)每题1分共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列链表中,其逻辑结构属于非线性结构的是A)双向链表B)带链的栈C)二叉链表D)循环链表(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A)20 B)0或35 C)15 D)16(3)下列关于栈的叙述中,正确的是A)栈底元素一定是最先入栈的元素B)栈操作遵循先进后出的原则C)栈顶元素一定是最后入栈的元素D)以上三种说法都不对(4)在关系数据库中,用来表示实体间联系的是A)网状结构B)树状结构C)属性D)二维表(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是A)1:m联系B)m:n联系C)1:1联系D)m:1联系(6)有两个关系R和S 如下:则由关系R得到关系S的操作是A)自然连接B)并C)选择D)投影(7)数据字典(DD)所定义的对象都包含于A)软件结构图B)方框图 C)数据流图(DFD图)D)程序流程图(8)软件需求规格说明书的作用不包括A)软件设计的依据B)软件可行性研究的依据C)软件验收的依据D)用户与开发人员对软件要做什么的共同理解(9)下面属于黑盒测试方法的是A)边界值分析B)路径覆盖C)语句覆盖D)逻辑覆盖(10)下面不属于软件设计阶段任务的是A)制定软件确认测试计划B)数据库设计C)软件总体设计D)算法设计(11)以下叙述中正确的是BA)在C语言程序中,main函数必须放在其他函数的最前面B)每个后缀为.C的C语言源程序都可以单独进行编译C)在C语言程序中,只有main函数才可单独进行编译D)每个后缀为.C的C语言源程序都应该包含一个main函数(12)C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是AA)预定义标识符(如库函数中的函数名)可用作用标识符,但失去原有含义B)用户标识符可以由字母和数字任意顺序组成C)在标识符中大写字母和小写字母被认为是相同的字符D)关键字可用作用户标识符,但失去原有含义(13)以下选项中表示一个合法的常量是(说明:符号 表示空格)B A)9 9 9 B)0Xab C)123E0.2D)2.7e(14)C语言主要是借助以下哪个功能来实现程序模块化AA)定义函数B)定义常量和外部变量C)三种基本结构语句D)丰富的数据类型(15)以下叙述中错误的是CA)非零的数值型常量有正值和负值的区分B)常量是在程序运行过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型D)用符号名表示的常量叫符号常量(16)若有定义和语句:int a,b; scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是CA)3,5, B)3,5,4 C)3 ,5 D)3,5(17)C语言中char类型数据占字节数为CA)3 B)4 C)1 D)2(18)下列关系表达式中,结果为“假”的是BA)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1(19)若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch 语句是DA)switch(a+9) B)switch a*b{ case c1:y=a-b; C1 C1 是变量{ case 10:x=a+b;case c2:y=a+b; default :y=a-b;} }C)switch(a+b) D)switch(a*a+b*b){ case1:case3:y=a+b;break { default: break;case0:case4:y=a-b; case 3: y=a+b;break;} case和数字没空格case 2: y=a-b;break;}(20)有以下程序#include<stdio.h>main(){ int a=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是DA)1,3 B)0,2 C)0,3 D)1,2(21)设有定义:int x=0,*p; ,立刻执行以下语句,正确的语句是C A)p=x; B)*p=x; C)p=NULL; D)*p=NULL;(22)下列叙述中正确的是DA)可以用关系运算符比较字符串的大小B)空字符串不占用内存,其内存空间大小是0 \0C)两个连续的单引号是合法的字符常量D)两个连续的双引号是合法的字符串常量(23)有以下程序#include <stdio.h>main(){ char a='H';a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;printf("%c\n",a);}程序运行后的输出结果是DA)A B)a C)H D)h(24)有以下程序#include <stdio.h>int f(int x);main(){ int a,b=0;for(a=0;a<3;a++){ b=b+f(a); putchar('A'+b); }}int f(int x){ return x*x+1; }程序运行后的输出结果是BA)ABE B)BDI C)BCF D)BCD(25)设有定义:int x[2][3];,则以下关于二维数组x的叙述错误的是D A)x[0]可看作是由3个整型元素组成的一维数组B)x[0]和x[1]是数组名,分别代表不同的地址常量C)数组x包含6个元素D)可以用语句x[0]=0;为数组所有元素赋初值0(26)设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于C A)p= ""; B)p= '0'; C)p=0; D)p= '';(27)有以下程序#include <stdio.h>main(){int a[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){ a[i]=*p; p++; }printf("%d\n",a[2]);}程序运行后的输出结果是AA)30 B)40 C)10 D)20 (28)有以下程序#include <stdio.h>#define N 3void fun(int a[][N],int b[]){ int i,j;for(i=0;i<N;i++){ b[i]=a[i][0];for(j=i;j<N;j++)if(b[i]<a[i][j]) b[i]=a[i][j];}}main(){int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<N;i++) printf("%d,",y[i]);printf("\n");}程序运行后的输出结果是BA)2,4,8, B)3,6,9, C)3,5,7, D)1,3,5, (29)有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数)#include <stdio.h>#include <string.h>main(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序运行后的输出结果是cA)a12xyz B)12yz C)a2yz D)bc2yz (30)以下选项中,合法的是AA)char str3[]={'d', 'e', 'b', 'u', 'g', '\0', };B)char str4; str4="hello world";C)char name[10]; name="china";D)char str[5]= "pass",str2[6]; str2=str1;(31)有以下程序#include <stdio.h>main(){ char *s="12134"; int k=0,a=0;while(s[k+1]!='\0'){ k++;if(k%2==0){ a=a+(s[k]-'0'+1); continue; }a=a+(s[k]-'0');}printf("k=%d a=%d\n",k,a);}程序运行后的输出结果是CA)k=6 a=11 B)k=3 a=14 C)k=4 a=12 D)k=5 a=15 (32)有以下程序#include <stdio.h>main(){ char a[5][10]={"one","two","three","four","five"};int i,j; char t;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0]){ t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t; }puts(a[1]);}程序运行后的输出结果是 A 置换排序A)fwo B)fix C)two D)owo(33)有以下程序#include <stdio.h>int a=1,b=2;void fun1(int a,int b){ printf("%d %d",a,b); }void fun2(){ a=3;b=4; }main(){ fun1(5,6);fun2();printf("%d %d\n",a,b);}程序运行后的输出结果是 B 全局变量一旦覆盖就没了A)1 2 5 6 B)5 6 3 4 C)5 6 1 2 D)3 4 5 6(34)有以下程序#include <stdio.h>void func(int n){ static int num=1;num=num+n; p rintf("%d",num)}main(){ func(3); func(4); printf("\n");}程序运行后的输出结果是AA)4 8 B)3 4 C)3 5 D)4 5(35)有以下程序#include <stdio.h>#include <stdlib.h>void fun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);}main(){ int a=1,b=40,*q=&a;fun(&a,&b,q);printf("%d\n",*q);}程序运行后的输出结果CA)42 B)0 C)1 D)41(36)有以下程序#include<stdio.h>struct STU{char name[9]; char sex; int score[2]; };void f(struct STU a[ ]){ struct STU b={"Zhao",'m',85,90};a[1]=b;}main(){ struct STU c[2]={{"Qian",'f',95,92},{"Sun",'m',98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]);printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);}程序运行后的输出结果是DA)Zhao,m,85,90,Sun,m,98,99 B)Zhao,m,85,90,Qian,f,95,92 C)Qian,f,95,92,Sun,m,98,99 D)Qian,f,95,92,Zhao,m,85,90 (37)以下叙述中错误的是BA)可以用typedef说明的新类型名来定义变量B)typedef说明的新类型名必须使用大写字母,否则会出编译错误C)用typedef可以为基本数据类型说明一个新名称D)用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名(38)以下叙述中错误的是 AA)函数的返回值类型不能是结构体类型,只能是简单类型B)函数可以返回指向结构体变量的指针C)可以通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间可以整体赋值(39)若有定义语句int b=2; 则表达式(b<<2)/(3||b)的值是A)4 B)8 C)0 D)2(40)有以下程序#include <stdio.h>main(){ FILE *fp; int i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++) printf("%d,",a[i]);}程序运行后的输出结果是DA)4,5,6,1,2,3, B)1,2,3,3,2,1, C)1,2,3,4,5,6, D)6,5,4,3,2,1, 二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

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( ){ 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语言中,逻辑"真"等价于()。

2022年贵州师范大学公共课《C语言》科目期末试卷A(有答案)

2022年贵州师范大学公共课《C语言》科目期末试卷A(有答案)

2022年贵州师范大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设有char a,b;若要通过a&b运算屏蔽掉a中的其他位,只保留第2和第8位(右起为第1位),则b的二进制数是_______。

2、在C语言源程序中,一个变量代表【】。

3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。

5、若a是int型变量,则执行表达式a=25/3%3后a的值为_______6、请填空:建立如图所示存储结构所需的说明语句是_______。

建立如图所示为变量a输入数据的输入语句是_______。

建立如图所示存储结构所需的赋值语句是_______。

7、下面程序段是找出整数的所有因子。

请填空。

scanf("%d",&x);i=1;for(;_______;){if(x%i==0)printf("%3d",i);i++;}8、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。

9、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。

10、设有如下定义:#define SWAP(T,X,Y){T=X;X=Y;Y=T;}以下程序段将通过调用宏实现变量x和y内容的交换,请填空。

Double x=2.5,y=6.4,z;SWAP(_______);二、选择题11、若有定义语句:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。

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

贵州大学2012-20103学年第一学期考试试卷 AC语言程序设计满分100分,考试时间为120分钟。

一、单项选择题(选出一个正确答案,每小题2分,共20分)1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( )A.连接、编译B. 连接、运行C. 编译、运行D. 编译、连接2.下列说法正确的是()A.一个c语言程序并非总是从主函数位置开始执行的B.一个c语言程序有且只有一个主函数C.函数可以嵌套定义,不可以嵌套调用D.程序函数的位置不可以任意3.下面是合法C语言标识符的是()A. 2A_K;B. _M+N;C. –M3;D. AC_2;4.下列格式符中,可以用于控制字符输出的是( )A. %dB. %fC. %oD. %c5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是( )A. 4;B. 16;C. 30;D. 50;6.执行语句“for(i=1,s=0;i<=5;i++) s+=i;”后,变量s、i的当前值是( )A. 10,5B. 15,6C. 15,5D. 10,67.若有定义 int x,*p;,则以下正确的赋值表达式是( )A. p=x;B. p=&x;C. *p=&x;D. *p=*x;8.以下对结构体类型变量的定义中,不正确的是( )A. typedef struct aaB. #define AA struct aa{ int n;AA { int n; float m; float m; }AA; }stud; AA stud;C. structD. struct { int n; { int n; float m; float m; }aa; }stud; struct aa stud;9.有如下函数调用语句:func(rec1,rec2+rec3,(rec4+rec5)); 函数调用语句中,含有的实参个数是( )A. 3B. 4C. 5D. 以上均不是10.对于以下宏定义: #define SQ(x) x*x#define QQ(x,y) SQ(x)- SQ(y) 宏调用QQ(2*3,2+3)执行后值为( )A.25B.11C.43D.以上均不是二、填空题(每空2分,共20分)1.设int a=5, c=32;float b=2.5;,表达式b+c/a的值为___ ___2.若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是 __。

3.设a=3,b=4,c=5。

则a+b>c&&b==c的值为 ___。

4.有如下程序段:int k=10;while(k=0) k=k-1;则循环体语句执行___ 次。

5.int i=0,s=0; while (i<n) s+=i++; 等价于 int i,s;for(______;________;________);6.将p说明为字符数组指针,数组大小为10,应写为______________;7.对于 int *p,*q,i=5,j=6; ,执行:p=&i;q=p;p=&j;输出结果(*p)=_______,(*q)=________。

三、程序阅读题(请写出程序的输出结果。

每题6分,共30分)1. #include <stdio.h>main(){int i,j,m,n;i=8; j=10; m=++i; n=j++;printf(″%d, %d, %d, %d″,i,j,m,n);}输出结果:2 . #include <stdio.h>main(){ int i;for(i=3;i<10;i++){ if(i*i/20>1) break;printf("%d; ",i); }printf("\n"); }输出结果:3. #include <stdio.h>int fac(int n){ static int f=1;f=f*n;return(f); }main(){ int i;for(i=2;i<=5;i++)printf(“%d!=%d\n”,i,fac(i)); }输出结果:4. #include <stdio.h>main(){ char s[ ]=“ABCD”,*p;for(p=s+1; *p!=’\0’; p++)printf(“%s\n”,p);}输出结果:5. #include <stdio.h>int f(char *s){ int k=0;while(*s) k=k*10+*s++-‘0’;return(k); }main( ){ int a;a=f(“1234”);printf(“a=%d\n”,a); }输出结果:四、根据下列各编程题题意填空(每空2分,共10分)1、用for循环打印 1 4 7 10 13 16 19 22 25 , 其语句应为:for (i=1; i<=9; i++) printf(“%3d”, ___);2、程序A如下:int f(int n){if(n<=1) return n;else return f(n-1)+f(n-2); }等价于程序B:int f(int n){ _____; t0=0;t1=1;t=n;while(_____) {t=______; t0=t1; t1=t;n--; }return ______;}五、编程题(第1题8分,第2题12分,共20分)1.求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…,的前20项之和。

2. 输入5个字符串,从中找出最大的字符串并输出。

要求:用二维字符数组存放这5个字符串,用指针数组元素分别指向这5个字符串,用一个二级指针变量指向这个指针数组。

答案一、单项选择题(每小题2分,共20分)1-5、DBDDC 6-10、BBCAC二、填空题(每空2分,共20分)1.8.52. 123. 04. 05. i=0,s=0; i<n; s+=i++6. char (*p)[10]7. 6 , 5三、程序阅读题(每题6分,共30分)1 9,11,9,102. 3;4;5;6;3. 2!=23!=64!=245!=1204 BCDCDD5 1234四、根据下列各编程题题意填空(每空2分,共10分)1. 3*i-22. int t0,t1,t n>=2 t0+t1 t五、编程题(第1题8分,第2题12分,共20分)1. #include <stdio.h>main( ){ int n,t; float a=2,b=1,s=0;for (n=1;n<=20;n++){ s=s+a/b;t=a; a+=b;b=t; }printf(“the total is %f\n”,s); }2. #include <stdio.h>main( ){ char a[5][80],*p[5],**q,**max; int i;for (i=0;i<5;i++)p[i]=a[i];for (i=0;i<5;i++)gets(p[i]);max=&p[0];q=&p[1];for (i=1;i<5;i++,q++)if (strcmp(*max,*q)<0 max=q; puts(*max); }C语言最重要的知识点总体上必须清楚的:1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。

2)读程序都要从main( )入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。

3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。

byte是指字节, 一个字节= 八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。

C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。

3、每个C语言程序中main函数是有且只有一个。

4、在函数中不可以再定义函数。

5、算法:可以没有输入,但是一定要有输出。

6、break可用于循环结构和switch语句。

7、逗号运算符的级别最低,赋值的级别倒数第二。

第一章C语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。

2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。

3、一个C语言程序有且只有一个main函数,是程序运行的起点。

第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。

2、每个C语言程序写完后,都是先编译,后链接,最后运行。

(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe 文件才可以运行。

(常考!)第三节、标识符所谓标识符是指常量、变量、语句标号以及用户自定义函数的名称。

C语言规定标识符只能由字母、数字、下划线组成,并且只能由字母、下划线开头。

一些标识符被赋于特定的含义就叫做保留字(或称为关键字)。

1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。

关键字:不可以作为用户标识符号。

main define scanf printf 都不是关键字。

迷惑你的地方If是可以做为用户标识符。

因为If中的第一个字母大写了,所以不是关键字。

预定义标识符:背诵define scanf printf include。

记住预定义标识符可以做为用户标识符。

用户标识符:基本上每年都考,详细请见书上习题。

第四节:进制的转换十进制转换成二进制、八进制、十六进制。

二进制、八进制、十六进制转换成十进制。

第五节:整数与实数1)C语言只有八、十、十六进制,没有二进制。

但是运行时候,所有的进制都要转换成二进制来进行处理。

(考过两次)a、C语言中的八进制规定要以0开头。

018的数值是非法的,八进制是没有8的,逢8进1。

b、C语言中的十六进制规定要以0x开头。

2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。

1.0在C语言中可写成1.0.1在C语言中可以写成.1。

3)实型数据的合法形式:a、2.333e-1 就是合法的,且数据是2.333×10-1。

b、考试口诀:e前e后必有数,e后必为整数。

相关文档
最新文档