高级语言程序设计复习资料.docx
《高级语言程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计复习资料.docx(34页珍藏版)》请在冰豆网上搜索。
高级语言程序设计复习资料
一、简答题(10选2,每题5分)
1.简要叙述指针为函数参数的使用方法。
2.简要叙述结构体特点。
3.简述机器语言、汇编语言和高级语言。
4.简述C语言的特点。
5.简述C语言程序的编辑、编译与运行。
6简述程序设计语言的分类、高级语言及其分类。
7.简述C语言的发展简史。
8.简要列举C语言中的常用表达式。
9.简要叙述break语句与continue语句的区别。
10.冯洛伊曼体系结构图
二、填空题(10个空每空2分)
1.程序运行过程中,其值保持不变的量称为;为了提高程序的可读性与易维护性,可以用宏替换给常量命名。
程序运行过程中,其值可以改变的量称为。
2.程序的三种基本结构是:
结构、结构、结构。
3.数组是一组、的变量,数组中的变量称为。
数组名本质上是,它是数组的首地址即数组第一个元素的地址。
4.函数是具有相对独立功能的。
函数定义中的参数称为参数,函数调用中的参数称为参数。
函数的数据类型是函数返回值的数据类型;无返回值时,函数的数据类型为。
函数直接或间接调用自身称为调用。
5.计算机内存单元的称为地址,存放地址的变量称为变量。
6.结构是一组、的变量,结构中的变量称为。
7.标识符由、、组成,以或开头,字母区分大小写;不能用作标识符。
8.通过变量名访问变量,称为变量的访问。
通过变量的地址访问变量,称为变量的访问。
9.字符型常量是一对括起的单个字符,字符串常量是一对括起的一串字符。
10.在C语言中,文件可以用___________和____________两种形式存取。
11.函数定义____________和_______________两部分组成。
12.设p是指向数组中某元素的指针变量,分别写出下列表达式的含义:
p++:
___________________________________________________________;
++p:
____________________________________________________________。
13.C标准函数库提供了丰富的输入输出函数,用户程序使用时需包含系统头文件_____________。
14.数组的下标从_______开始,数组的最大下标是________________。
15.()、=、&&的优先级顺序从高到低依次为__________________________。
16.任何一个计算机程序执行时的控制流程均可用三种基本结构表示:
_________、__________、__________。
17.变量的地址被称为__________,而存放地址数据的变量称为__________。
18.运行C程序的一般步骤:
____________、________________、______________、______________。
19.C标准函数库提供了常用的字符串处理函数,用户使用时需包含头文件____________。
三、单选题(每题2分10题,请大家考试时慎重答题)
1.以下正确的标识符是()。
A.%XB.a+bC.a123D.test!
2.C语言中的基本数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型
C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型
3.下面程序段所表示的逻辑关系是()。
if(a
elsex=2;
A.当ab时x=2
B.当a
C.当a≤b时x=1,当a>b时x=2
D.当a≥b时x=1,当a≠b时x=2
4.下列说法正确的是()。
A.while循环中,必须使用break语句跳出循环
B.while循环中,当循环条件为真时结束循环
C.while循环中,必须使用continue语句跳出循环
D.while循环中,当循环条件为假时结束循环
5.定义10个元素的整型数组a,应使用语句()。
A.inta[10]B.inta[2,5]C.inta[]D.int*a[10]
6.设有定义chars[10]="ABCDE",t[10]="xyz";则printf("%d",strlen(strcpy(s,t)));的输出是()。
A.6B.5C.4D.3
7.以下正确的说法是()。
A.函数定义不能嵌套,但函数调用可以嵌套
B.函数定义可以嵌套,但函数调用不能嵌套
C.函数定义和函数调用都可以嵌套
D.函数定义和函数调用都不能嵌套
8.已知double*p[6];它的含义是()。
A.p是指向double类型变量的指针
B.p是double类型数组
C.p是指针数组
D.p是数组指针
9.设变量i的值为3,i的地址为2000,使指针变量p指向i,则赋值正确的是()。
A.&i=3B.*p=3C.*p=2000D.p=&i
10.已知学生记录描述为:
structstudent{
intno;
charname[20];
charsex;
struct{
intyear,month,day;
}birth;
};
structstudents;
设变量s中的“生日”为1994年11月11日,下列对birth的正确赋值方式是()。
A.year=1994;month=11;day=11;
B.birth.year=1994;birth.month=11;birth.day=11;
C.s.year=1994;s.month=11;s.day=11;
D.s.birth.year=1994;s.birth.month=11;s.birth.day=11;
1.以下选项中属于C语言的数据类型是()。
A.复数型B.逻辑型C.双精度型D.集合型
2.已知字母A的ASCII是65,变量c是字符型,则执行语句c='A'+'6'-'3';后,c的值为()。
A.CB.DC.68D.不确定
3.下面程序段所表示的逻辑关系是()。
if(a
elsex=2;
A.当a
B.当a≤b时x=1,当a>b时x=2
C.当a
D.当a≥b时x=1,当a≠b时x=2
4.下列说法正确的是()。
A.do-while循环中,当循环条件为真时结束循环
B.do-while循环中,当循环条件为假时结束循环
C.do-while循环中,必须使用break语句跳出循环
D.do-while循环中,必须使用continue语句跳出循环
5.设有定义chars[12]="string";则printf("%d",strlen(s));的输出是()。
A.6B.7C.8D.9
6.在下述对C语言字符数组的描述中错误的是()。
A.字符数组可以存放字符串
B.字符数组中的字符串可以进行整体输入/输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.字符数组的下标从0开始
7.以下正确的说法是()。
A.函数定义不能嵌套,但函数调用可以嵌套
B.函数定义可以嵌套,但函数调用不能嵌套
C.函数定义和函数调用都可以嵌套
D.函数定义和函数调用都不能嵌套
8.已知chars[10],*p=s;则在下列语句中,错误的语句是()。
A.p=s+5B.s=p+sC.s[2]=p[4]D.*p=s[0]
9.求数组inta[10]的首地址运算是()。
A.&a[10]B.a[0]C.&a[0]D.a[10]
10.当说明一个结构体变量时,系统分配给它的内存是()。
A.各成员所需内存量的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
1.C语言中字符型(char)数据在内存中的存储形式是()。
A.原码B.补码C.反码D.ASCII码
2.若已定义x和y为double型,则表达式x=1.0,y=3/2+x的值是()。
A.1.0B.1.5C.2.0D.2.5
3.C语言的运算符按运算对象的数目不同可以分为()。
A.单目运算符B.单目和双目运算符
C.单目、双目和三目运算符D.单目、双目、三目和四目运算符
4.下列说法正确的是()。
A.while循环中,当循环条件为真时结束循环
B.while循环中,当循环条件为假时结束循环
C.while循环中,必须使用break语句跳出循环
D.while循环中,必须使用continue语句跳出循环
5.已知:
inta[3][4];则对数组元素引用正确的是()。
A.a[2][4]B.a[1,3]C.a[1+1][0]D.a
(2)
(1)
6.若有以下语句,则正确的描述是()。
charx[]="12345";chary[]={'1','2','3','4','5'};
A.x数组和y数组的长度相同B.x数组长度大于y数组长度
C.x数组长度小于y数组长度D.x数组等价于y数组
7.下列函数中,字符串比较函数是()。
A.strcatB.strlenC.strcpyD.strcmp
8.已知函数定义如下:
f(char*s,char*t)
{
while(*s++=*t++);
}
函数f的功能是()。
A.串复制B.求串长C.串比较D.串反向
9.已知intx,则下面的定义指针变量p的语句正确的是()。
A.intp=&xB.int*p=xC.int*p=&xD.int*p=*x
10.已知学生记录描述为:
structstudent{
intno;
charname[20];
charsex;
struct{
intyear,month,day;
}birth;
};
structstudents;
设变量s中的“生日”应为1994年11月11日,下列对“生日”的正确赋值方式是()。
A.year=1994;month=11;day=11;
B.birth.year=1994;birth.month=11;birth.day=11;
C.s.year=1994;s.month=11;s.day=11;
D.s.birth.year=1994;s.birth.month=11;s.birth.day=11;
1.结构化程序设计所规定的三种基本控制结构是___________。
A.输入、处理、输出B.树形、网形、环形
C.顺序、选择、循环D.主程序、子程序、函数
2.以下叙述中正确的是__________。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其它函数之前
D.所有被调用的函数一定要在调用之前进行定义
3.以下选项中合法的用户标识符是__________。
A.longB.test1C.3DmaxD.A.dat
4.已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是___________。
A.scanf(%2d%2d%2d,&i,&j,&k);
B.scanf(%d%d%d,&i,&j,&k);
C.scanf(%d,%d,%d,&i,&j,&k);
D.scanf(i=%d,j=%d,k=%d,&i,&j,&k);
5.以下c语言函数声明中,不正确的是__________。
A.voidfun(intx,inty);B.fun(intx,inty);
C.intfun(intx,y);D.char*fun(char*s);
6.C语言中while和do-while循环的主要区别是____________。
A.do-while循环体至少要无条件执行一次。
B.while循环比do-while循环控制条件严格。
C.do-while允许从外部转到循环体内。
D.do-while的循环体不能是复合语句。
7.变量的指针,其含义是指该变量的_____________。
A.值B.地址C.名D.一个标志
8.假设指针p已经指向某个整型变量m,则*p相当于______________。
A.&mB.&pC.mD.*m
9.若x=2,y=3则x&y的结果是________________。
A.0B.2C.3D.5
10.设有定义intx=1;inty=‘a’<‘A’?
x--:
x++;,则变量y的值是___________。
A.0B.2C.1D.3
1.要把高级语言编写的源程序转换为目标程序,需要使用____________。
A.编辑程序B.驱动程序C.诊断程序D.编译程序
2.英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为____________。
A.50B.66C.52D.68
3.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是__________。
A.6.500000B.6C.5.500000D.6.000000
4.表达式1&&3&&5的值为_____________。
A.1B.3C.5D.7
5.下列选项中,不合法的C语言关键字是______________。
A.autoB.defaultC.staticD.var
6.C语言允许函数值缺省定义,此时该函数值隐含的类型是______________。
A.floatB.intC.longD.double
7.若x=5,则x*=x+2的值为________________。
A.35B.12C.7D.25
8.以下运算符中,运算对象必须是整型的是_____________。
A./B.%C.!
D.〈
9.若有定义:
inta[10];则对a数组元素的正确引用是_____________。
A.a[10]B.a[15]C.a[7]D.a(5)
10.设有定义intx=2;inty=‘a’<‘A’?
x--:
x++;,则变量y的值是___________。
A.0B.2C.1D.3
四、判断题(每题2分10题,请大家考试时慎重答题)
1.C变量必须先定义(声明),后使用。
()
2.C语言不允许混合类型数据间进行运算。
()
3.模运算符%要求运算对象必须是实型。
()
4.多个变量定义时赋初值可以写成:
inta=b=c=3。
()
5.逗号运算符的优先级最低。
()
6.若x是双精度型变量,赋值x=10后,则x中存放的是整型数。
()
7.switch语句中可使用break语句和continue语句。
()
8.switch语句中的case表达式可以是任意类型的表达式。
()
9.C程序总是从main函数开始执行,因此main函数必须是第一个函数。
()
10.函数必须有返回值,否则不能定义成函数。
()
3.自增运算符(++)或自减运算符(--)的运算对象是变量,而不能是常量或表达式。
()
4.多个变量定义时赋初值可以写成:
inta=b=c=3。
()
5.逗号运算符的优先级最低。
()
6.若a是浮点型变量,赋值a=100后,则a中存放的是整型数。
()
7.switch语句中的case表达式可以是任意类型的表达式。
()
8.break语句只能用于循环语句。
()
9.C程序总是从第一个函数开始执行,执行完最后一个函数后,程序结束。
()
10.调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参。
()
1.C语言源程序文件通过了编译、连接之后生成一个后缀为.EXE的文件。
()
2.在C程序中函数既可以嵌套定义,也可以嵌套调用。
()
3.在C程序中APH和aph代表不同的变量。
()
4.表达式0195是一个八进制整数。
()
5.Continue语句的作用是结束本次循环。
()
6.可以将一个整数赋给一个指针变量。
()
7.C语言中字符串的结束符是’\0’。
()
8.do-while的循环体至少无条件执行一次。
()
9.C程序总是从main()函数的第一条语句开始执行的。
()
10.数组名代表数组的首地址。
()
1.在对一个C程序进行编译的过程中,不能发现注释中的拼写错误。
()
2.在C程序中,main函数必须位于程序的最前面。
()
3.printf()函数总是从新行的起始位置开始打印。
()
4.C语言认为变量number和NuMbEr是不相同的。
()
5.在C程序中,无论是整数还是实数都能被准确无误地表示。
()
6.switch选择结构中必须有default子句。
()
7.如果x>y或ay&&a
()
8.若有intⅰ=10,j=0;则执行完语句if(j=0)ⅰ++;elseⅰ--;ⅰ的值为11。
()
9.函数的定义不可以嵌套,但函数的调用可以嵌套。
()
10.inti,*p=&i;是正确的C语言的说明。
()
五、程序阅读(每题2分5题)
1.以下程序的运行结果为。
#include
voidmain(void)
{
intx=10,y=62,z;
z=x>y?
x:
y;
printf("z=%d\n",z);
}
2.以下程序的运行结果为。
#include
voidmain(void)
{
ints=0,i;
for(i=1;i<=10;++i)s=s+i;
printf("sum=%d\n",s);
}
3.以下程序的运行结果为。
#include
#include
voidmain(void)
{
chars[80]="Wuhan",t[]="businessuniversity";
strcat(s,t);
printf("%s,%d\n",s,strlen(s));
}
4.以下程序的运行结果为。
#include
voidf(int);
voidmain(void)
{
intx=10;
f(x);
printf("x=%d\n",x);
}
voidf(intx)
{
x=20;
}
5.以下程序的运行结果为。
#include
voidmain(void)
{
inta[10]={1,2,3,4,5,6,7,8,9,10},*p;
p=&a[0];
p=p+3;
printf("%d\n",*p);
}
1.以下程序的运行结果为。
#include
voidmain(void)
{
inta,b,x;
x=(a=3,b=a--);
printf("x=%d,a=%d,b=%d\n",x,a,b);
}
2.以下程序的运行结果为。
#include
voidmain(void)
{
intf=1,i;
for(i=1;i<=5;++i)f=f*i;
printf("factorial=%d\n",f);
}
3.以下程序的运行结果为。
#include
#include
voidmain(void)
{
chars[80]="Wuhan",t[]="businessuniversity";
strcat(s,t);
printf("%s,%d\n",s,strlen(s));
}
4.以下程序的运行结果为。
#include
voidmain(void)
{
intn,i,a=1,b=1,c;
for(i=0;i<10;++i){
printf("%-6d",a);
c=a+b;
a=b;
b=c;
}
printf("\n");
}
5.以下程序的运行结果为。
#include
voidf(int);
voidmain(void)
{
intx=10;
f(x);
printf("x=%d\n",x);
}