资源描述
一、简答题(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. 以下正确的标识符是( C )。
A. %X B. a+b C. a123 D. test!
2. C语言中的基本数据类型包括( B )。
A. 整型、实型、逻辑型 B. 整型、实型、字符型
C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型
3. 下面程序段所表示的逻辑关系是( B )。
if(a < b) x = 1;
else x = 2 ;
A. 当a < b时x = 1,当a > b时x = 2
B. 当a < b时x = 1,当a ≥ b时x = 2
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 )。
A. int a[10] B. int a[2, 5] C. int a[] D. int *a[10]
6. 设有定义char s[10] = "ABCDE", t[10] = "xyz"; 则printf("%d", strlen(strcpy( s, t ))); 的输出是( A )。
A. 6 B. 5 C. 4 D. 3
7. 以下正确的说法是( )。
A. 函数定义不能嵌套,但函数调用可以嵌套
B. 函数定义可以嵌套,但函数调用不能嵌套
C. 函数定义和函数调用都可以嵌套
D. 函数定义和函数调用都不能嵌套
8. 已知double *p[6];它的含义是( C )。
A. p是指向double类型变量的指针
B. p是double类型数组
C. p是指针数组
D. p是数组指针
9. 设变量i的值为3,i的地址为2000,使指针变量p指向i,则赋值正确的是( D )。
A. &i = 3 B. *p = 3 C. *p = 2000 D. p = &i
10. 已知学生记录描述为:
struct student{
int no;
char name[20];
char sex;
struct{
int year, month, day;
}birth;
};
struct student s;
设变量s中的“生日”为1994年11月11日,下列对birth的正确赋值方式是( D )。
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语言的数据类型是( C )。
A. 复数型 B. 逻辑型 C. 双精度型 D. 集合型
2. 已知字母A的ASCII是65,变量c是字符型,则执行语句c = 'A'+'6'-'3'; 后,c的值为( D )。
A. C B. D C. 68 D. 不确定
3. 下面程序段所表示的逻辑关系是( A )。
if( a < b ) x = 1;
else x = 2 ;
A. 当a < b时x = 1,当a ≥ b时x = 2
B. 当a ≤ b时x = 1,当a > b时x = 2
C. 当a < b时x = 2,当a ≥ b时x = 1
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. 设有定义char s[12] = "string"; 则printf("%d", strlen(s)); 的输出是( A )。
A. 6 B. 7 C. 8 D. 9
6. 在下述对C语言字符数组的描述中错误的是( C )。
A. 字符数组可以存放字符串
B. 字符数组中的字符串可以进行整体输入/输出
C. 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D. 字符数组的下标从0开始
7. 以下正确的说法是( )。
A. 函数定义不能嵌套,但函数调用可以嵌套
B. 函数定义可以嵌套,但函数调用不能嵌套
C. 函数定义和函数调用都可以嵌套
D. 函数定义和函数调用都不能嵌套
8. 已知char s[10], *p=s; 则在下列语句中,错误的语句是( B )。
A. p=s+5 B. s=p+s C. s[2]=p[4] D. *p=s[0]
9. 求数组int a[10]的首地址运算是( C )。
A. &a[10] B. a[0] C. &a[0] D. a[10]
10. 当说明一个结构体变量时,系统分配给它的内存是( A )。
A. 各成员所需内存量的总和
B. 结构中第一个成员所需内存量
C. 成员中占内存量最大者所需的容量
D. 结构中最后一个成员所需内存量
1. C语言中字符型(char)数据在内存中的存储形式是( D )。
A. 原码 B. 补码 C. 反码 D. ASCII码
2. 若已定义x和y为double型,则表达式x = 1.0, y = 3/2+x的值是( C )。
A. 1.0 B. 1.5 C. 2.0 D. 2.5
3. C语言的运算符按运算对象的数目不同可以分为( C )。
A. 单目运算符 B. 单目和双目运算符
C. 单目、双目和三目运算符 D. 单目、双目、三目和四目运算符
4. 下列说法正确的是( )。
A. while循环中,当循环条件为真时结束循环
B. while循环中,当循环条件为假时结束循环
C. while循环中,必须使用break语句跳出循环
D. while循环中,必须使用continue语句跳出循环
5. 已知:int a[3][4];则对数组元素引用正确的是( C )。
A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1)
6. 若有以下语句,则正确的描述是( B )。
char x[ ] = "12345"; char y[ ] = { '1', '2', '3', '4', '5' };
A. x数组和y数组的长度相同 B. x数组长度大于y数组长度
C. x数组长度小于y数组长度 D. x数组等价于y数组
7. 下列函数中,字符串比较函数是( )。
A. strcat B. strlen C. strcpy D. strcmp
8. 已知函数定义如下:
f(char *s, char *t)
{
while(*s++ = *t++);
}
函数f的功能是( )。
A. 串复制 B. 求串长 C. 串比较 D. 串反向
9. 已知int x,则下面的定义指针变量p的语句正确的是( A )。
A. int p = &x B. int *p = x C. int *p = &x D. int *p = *x
10. 已知学生记录描述为:
struct student{
int no;
char name[20];
char sex;
struct{
int year, month, day;
}birth;
};
struct student s;
设变量s中的“生日”应为1994年11月11日,下列对“生日”的正确赋值方式是( D )。
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. 构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C. main()函数必须放在其它函数之前
D. 所有被调用的函数一定要在调用之前进行定义
3. 以下选项中合法的用户标识符是___D_______。
A. long B. test1 C. 3Dmax D. A.dat
4. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是____B_______。
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语言函数声明中,不正确的是___B_______。
A. void fun (int x, int y); B. fun (int x, int y);
C. int fun (int x,y); D. char *fun (char *s);
6. C语言中while和do-while循环的主要区别是____D________。
A. do-while 循环体至少要无条件执行一次。
B. while循环比do-while 循环控制条件严格。
C. do-while 允许从外部转到循环体内。
D .do-while 的循环体不能是复合语句。
7. 变量的指针,其含义是指该变量的_____B________。
A. 值 B. 地址 C. 名 D. 一个标志
8. 假设指针p已经指向某个整型变量m,则*p相当于____C__________。
A. &m B. &p C. m D. *m
9. 若x=2,y=3则x&y的结果是______D__________。
A. 0 B. 2 C. 3 D. 5
10. 设有定义int x=1; int y=‘a’<‘A’?x--:x++;,则变量y的值是___C________。
A. 0 B. 2 C. 1 D. 3
1. 要把高级语言编写的源程序转换为目标程序,需要使用_____A_______。
A. 编辑程序 B. 驱动程序 C. 诊断程序 D. 编译程序
2. 英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为 _____D_______。
A. 50 B. 66 C. 52 D. 68
3.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是_____B_____。
A. 6.500000 B. 6 C. 5.500000 D. 6.000000
4. 表达式1&&3&&5的值为____D_________。
A. 1 B. 3 C. 5 D. 7
5. 下列选项中,不合法的C语言关键字是______________。
A. auto B. default C. static D. var
6. C语言允许函数值缺省定义,此时该函数值隐含的类型是______B________。
A.float B. int C. long D. double
7. 若x=5,则x*=x+2的值为____C____________。
A. 35 B. 12 C. 7 D. 25
8. 以下运算符中,运算对象必须是整型的是___B__________。
A. / B. % C. ! D.〈
9. 若有定义:int a[10];则对a数组元素的正确引用是____C_________。
A. a[10] B. a[15] C. a[7] D. a (5)
10.设有定义int x=2; int y=‘a’<‘A’?x--:x++;,则变量y的值是_____D______。
A. 0 B. 2 C. 1 D. 3
四、判断题(每题2分10题,请大家考试时慎重答题)
1. C变量必须先定义(声明),后使用。 ( T )
2. C语言不允许混合类型数据间进行运算。 ( F )
3. 模运算符%要求运算对象必须是实型。(整数) ( T )
4. 多个变量定义时赋初值可以写成:int a = b = c = 3。 ( F )
5. 逗号运算符的优先级最低。 ( T )
6. 若x是双精度型变量,赋值x = 10后,则x中存放的是整型数。 ( T )
7. switch语句中可使用break语句和continue语句。 ( T )
8. switch语句中的case表达式可以是任意类型的表达式。 ( T )
9. C程序总是从main函数开始执行,因此main函数必须是第一个函数。 ( F )
10. 函数必须有返回值,否则不能定义成函数。 ( T )
3. 自增运算符(++)或自减运算符(--)的运算对象是变量,而不能是常量或表达式。( T )
4. 多个变量定义时赋初值可以写成:int a = b = c = 3。 ( F )
5. 逗号运算符的优先级最低。 ( T )
6. 若a是浮点型变量,赋值a = 100后,则a中存放的是整型数。 ( F )
7. switch语句中的case表达式可以是任意类型的表达式。 ( T )
8. break语句只能用于循环语句。 ( F )
9. C程序总是从第一个函数开始执行,执行完最后一个函数后,程序结束。 ( F )
10. 调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参。 ( T )
1. C 语言源程序文件通过了编译、连接之后生成一个后缀为 .EXE 的文件。 ( T )
2. 在 C 程序中函数既可以嵌套定义 , 也可以嵌套调用。 ( F )
3. 在 C 程序中APH 和 aph 代表不同的变量。 ( T )
4. 表达式 0195 是一个八进制整数。 ( F )
5. Continue语句的作用是结束本次循环。 ( F )
6. 可以将一个整数赋给一个指针变量。 ( )
7. C语言中字符串的结束符是’\0’。 ( )
8. do-while的循环体至少无条件执行一次。 ( T )
9. C程序总是从main( ) 函数的第一条语句开始执行的。 ( F )
10. 数组名代表数组的首地址。 ( )
1.在对一个C程序进行编译的过程中,不能发现注释中的拼写错误。 (F )
2.在C程序中,main函数必须位于程序的最前面。 (F )
3.printf()函数总是从新行的起始位置开始打印。 ( F)
4.C语言认为变量number和NuMbEr是不相同的。 (F )
5.在C程序中,无论是整数还是实数都能被准确无误地表示。 (F )
6.switch选择结构中必须有default子句。 (F )
7.如果x>y或a<b为真,那么表达式(x>y&&a<b)一定为真。 (F )
8.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ--; ⅰ的值为11。(F )
9.函数的定义不可以嵌套,但函数的调用可以嵌套。 ( T)
10.int i,*p=&i;是正确的C语言的说明。 (T )
五、程序阅读(每题2分5题)
1. 以下程序的运行结果为 62 。
#include <stdio.h>
void main(void)
{
int x=10, y=62, z;
z = x > y ? x : y;
printf("z=%d\n", z);
}
2. 以下程序的运行结果为 66 。
#include <stdio.h>
void main(void)
{
int s=0, i;
for(i=1; i<=10; ++i) s = s+i;
printf("sum=%d\n", s);
}
3. 以下程序的运行结果为 。
#include <stdio.h>
#include <string.h>
void main(void)
{
char s[80]="Wuhan", t[]=" business university";
strcat(s, t);
printf("%s, %d\n", s, strlen(s));
}
4. 以下程序的运行结果为 。
#include <stdio.h>
void f(int);
void main(void)
{
int x = 10;
f(x);
printf("x=%d\n", x);
}
void f(int x)
{
x = 20;
}
5. 以下程序的运行结果为 。
#include <stdio.h>
void main(void)
{
int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p;
p = &a[0];
p = p+3;
printf("%d\n", *p);
}
1. 以下程序的运行结果为 。
#include <stdio.h>
void main(void)
{
int a, b, x;
x = ( a=3, b=a--);
printf("x=%d, a=%d, b=%d\n", x, a, b);
}
2. 以下程序的运行结果为 。
#include <stdio.h>
void main(void)
{
int f=1, i;
for(i=1; i<=5; ++i) f = f*i;
printf("factorial=%d\n", f);
}
3. 以下程序的运行结果为 。
#include <stdio.h>
#include <string.h>
void main(void)
{
char s[80]="Wuhan", t[]=" business university";
strcat(s, t);
printf("%s, %d\n", s, strlen(s));
}
4. 以下程序的运行结果为 。
#include <stdio.h>
void main(void)
{
int n, 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 <stdio.h>
void f(int);
void main(void)
{
int x = 10;
f(x);
printf("x=%d\n", x);
}
void f(int x)
{
x = 20;
}
2. 以下程序的运行结果为 。
#include <stdio.h>
void main(void)
{
int a=1, b=0, i;
for(i=1; i<=10; ++i)
if(i%2==0) a = a*i;
else b = b+i;
printf("mul=%d, sum=%d\n", a, b);
}
3. 以下程序的运行结果为 。
#include <stdio.h>
#include <string.h>
void main(void)
{
char s[80]="Wuhan", t[]=" business university";
strcat(s, t);
printf("%s, %d\n", s, strlen(s));
}
4. 以下程序的运行结果为 。
#include <stdio.h>
int func(int a[][3])
{
int i, j, s=0;
for(i=0; i<3; ++i)
for(j=0; j<3; ++j){
a[i][j] = i+j;
if(i==j) s = s+a[i][j];
}
return s;
}
void main(void)
{
int sum;
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
sum = func(a);
printf("sum=%d\n", sum);
}
5. 以下程序的运行结果为 。
#include <stdio.h>
void main(void)
{
int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p;
p = &a[0];
p = p+3;
printf("%d\n", *p);
1. 以下程序的运行结果为 。
#include <stdio.h>
void mai
展开阅读全文