c语言期末测试题(附答案)
华中科技大学文华学院-小学教师年度述职报告
**
**
**
课程代码:A100002
座位号:
**
**
**
**
《计算机技术基础(C语言)》试卷A
**
**
**
姓名: 学号:
专业:
**
**
**
学院: 班级:
装
20 年 月 日
装
**
**
题号 一 二 三 四 五 六 七 总分
订
**
**
得分
线
**
**
内
**
第一部分 选择题(共 30
分)
**
得分 评卷人
答
**
**
**
一、单项选择题(本大题共 15
小题,每题只有一个
正确答案,答对一题得 2 分,共 30 分)
题
订
**
无
**
1、以下关于C语言标识符的描述中,正确的是
【 】。
**A)标识符可以由汉字组成 B)标识符只能以字母开头
效
**
**
C)关键字可以作为用户标识符
D)Area与area是不同的标识符
**
2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【
】。
**
int i,j,k;
**
**
scanf(“%d,%3d%d”,&i,&j,&k);
**
printf(“%d,%d,%dn”,i,j,k);
线
A)12345678
B)123,456,78 C)123,45678 D)123,*45678
**
**
3、判断char类型的变量c1是否为数字字符的正确表达式为
【 】。
**
A) (c1>=0)&&(c1<=9)
B) (c1>=’0’)&&(c1<=’9’)
**
**
C)
’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’)
**
**
4、若有语句int
a=1,b=2,c=3;则以下值为0的表达式是 【 】。
**
A)’a’&&’b’ B)a<=b C)((a>b)||(b
**
**
5、已知:int a[2][3]; 则对数组元素的非法引用是
计算机技术基础试题
第 1页(共8页)
【 】
A.
*(a[0]+2) B. a[1][3] C . a[1][0]
D. *(*(a+1)+2)
6、在循环语句的循环体中执行break语句,其作用是
【 】。
A) 跳出该循环体,提前结束循环
B)
继续执行break语句之后的循环体各语句
C) 结束本次循环,进行下次循环
D)
终止程序运行
7、执行语句for(i=10;i>0;i--);后,变量i的值为
A)10 B)9 C)0 D)1
8、若有int *p1, *p2,k; 不正确的语句是
A. p1=&k B. p2=p1
C. *p1=k+12
D. k=p1+p2
9、在函数中未指定存储类别的局部变量,其隐含的存储类别是
A. 静态(static) B. 外部(extern)
C. 自动(auto)
D. 寄存器(register)
10、如下程序的输出结果是
main( )
{ int x=2,a=0,b=0;
switch(x)
{ case 2: a++; b++;
case 1: ++a; b--;
break;
case 0: b++;}
printf(
A.
a=2, b=0 B. a=2, b=1 C. a=1, b=1
D. a=1, b=0
11、表示关系aA. (aC. (a12、
有以下程序
#include
main()
{int x;
scanf(“%d”,&x);
if(x<=3) else
if(x
!=10)printf(“%dn”,x); }
计算机技术基础试题 第2页(共11页)
】。
】
】
】
】
【
【
【
【
【
**
**
程序运行时,输入的值在哪个范围才会有输出结果。 【
】
**
A.不等于10的整数
B.大于3且不等于10的整数
**
C.大于3或不等于10的整数
D.小于3的整数
**
**
13、break语句的正确用法是
【 】
**
A.
无论在任何情况下,都中断程序的执行,退出到系统下一层。
**
B.
在多重循环中,只能退出最靠近的那一层循环语句。
**
**
C.
跳出多重循环。 D. 只能修改控制变量。
**
14、若a, b, c, d均为整型变量,执行以下程序段后的t的值为 【 】
**
#define MAX(A,B) (A)<(B)?(A):(B)
**
................
装
a=5;
b=3; c=3; d=4;
装
**
t=MAX(a+b,c+d) *10;
**
A. 70 B. 7
C. 8 D. 80
订
**
**
15、执行以下程序段后, m的值为
【 】
int a[6]={1,2,3,4,5,6}, m, *p;
线
**
**
p=&a[0];
m=(*p)*(*(p+2))*(*(p+4));
内
**
**
A)
15 B) 14 C) 13 D)
12
答
**
**
**
第二部分 非选择题(共
70 分)
题
订
**
无
**
得分 评卷人
二、判断题(本大题共 10 小题,每题1分,共 10
分,
**
答T表示说法正确.答F表示说法不正确,本题只需指
效
**
**
出正确与错误,不需要修改)
**
16. 字符型数据不可以进行加减运算。
【 】
**
17. 函数定义与函数的声明是一回事。
【 】
**
18.在C语言中函数能嵌套调用,也能嵌套定义。
【 】
**
19. 在C 语言中switch 语句必须使用break 语句。
【 】
**
线
20. for循环中的三个表达式都可以省略。
【 】
21. do-while循环是先进行循环体语句,后判断表达式。 【
】
**
**
22. 只能在main()函数中定义静态变量。
【 】
**
23. char *s1=“I love
china”;定义了一个指针变量s1,它的初值为字符
**
串“I love
china”的首地址。 【 】
**
24. int *p[4];与int
(*p)[4];的作用相同,都是定义了一个指向数组
**
**
的指针。
【 】
**
25. 预处理命令行最后也是以分号(;)结尾的。
【 】
**
**
**
计算机技术基础试题 第
3页(共8页)
得分 评卷人
三、填空题(本大题共 6
小题,每题 3 分,共 18 分。)
26、在C语言中 * 作为单目运算符时表示____________,作为双目运算符时表示__________,而作为一种标记时表示______________。
27、表达式(a=3*5,a*4),a+5中a的值是__________,整个表达式的值是
_________。
28、设有如下的类型说明:
int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
若数组所占内存单元的起
始地址为446且整型数据占2个字节,则p+5=_______,
*(p+5)=______。
29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内存字
节数分别
为_________和__________。
union stu1
struct stu2
{ int num;
{int num;
char name[5];
char name[5];
char s; }x;
char s; }y;
30、在TC中C
TRL+F9的功能是__________、__________和_____________。
31、有以下程序
#include
main()
{char c1,c2;
scanf(“%c”,&c1)
while(c1<65||c1>96) scanf(“%c”,&c1)
c2=c1+32;
printf(“%c,%c”,c1,c2);
}
程序运行输入65回车后,能否输出结果。(请回答能或不能)______。
得分
计算机技术基础试题
第4页(共11页)
评卷人
四、简答题(本大题共 2 小题,每题 3
分,共 6 分。)
32、C语言中变量的存储类别有几种?局部变量的缺省存储类别是
哪种。
**
**
33、请解释以下与一个C程序有关的
3种文件(需要说明这些文件是
**
什么文件、如何形成的):(1)
file.c (2) (3)
**
**
**
**
**
**
**
**
**
**
装
得分 评卷人
五、阅读程序回答问题(本大题共 4 小题,每题
5分,
装
**
共 20 分)
**
订
**
**
线
**
34
、
#include
**
void main()
内
**
{ int
a=10,b=18;
**
fun1(a,b);
答
**
}
**
**
int fun1(int x,int y)
题
订
{ if(x>y)
**
printf(
无
**
else if(x
else printf(
效
**
}
**
问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)解
**
释#include
**
**
**
**
线
**
**
**
**
**
**
**
**
**
**
**
计算机技术基础试题 第 5页(共8页)
35、int
fun(int a)
{ int b=0;
static
int c=3;
b=b+1;
c=c+1;
return(a+b+c);}
main( )
{ int a=2, i;
for(i=0;
i<3; i++)
printf(“%d”, fun(a)); }
问题:(1)
写出该程序的运行结果;(2) 如果将static int c=3; 语句改写成int
c=3; ,则运行结果如何变化?为什么?
36、main( )
{ int
a[2][3]={1,2,3,4,5,6}, b[3][2], i, j;
printf(“array a:n”);
for(i=0;i<=1;i++)
{ for(j=0;j<=2;j++)
{printf(“%5d”,
a[i][j]);
b[j][i]=a[i][j];} *第七行*
printf(“n”);}
printf(“array b:n”);
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf(“%5d”, b[i][j]);
printf(“n”);}
}
问题:(1) 写出程序的运行结果;(2)如果将第七行中的b[j][i]=a[i]
[j];语句改写成
b[i][j]=a[i][j];,则结果如何变化。
计算机技术基础试题
第6页(共11页)
**
37、#include
**
**
void fun(int *p1, int *p2)
**
{
int t;
**
t=*p1; *p1=*p2; *p2=t; }
**
void main()
**
{ int x,y;
**
int *p1,*p2;
**
**
scanf( %d
**
p1=&x; p2=&y;
**
if(x>y) fun(p1,p2);
**
printf( }
装
问题:(1) 该程序的功能是什么;(2) 程序中的
* 和 & 分别代
装
**
表什么运算符?(3)若输入 5 3
,则运行结果如何?
**
订
**
**
线
**
**
内
**
**
答
**
**
**
题
订
**
无
**
得分 评卷人
六、编写程序(本大题共1小题,共 10 分。)
**
效
**
38、输入两个正整数m和n,求其最大公约数和最小
**
公倍数。(先画N-
S图,然后再编写程序代码)
**
**
**
**
**
线
**
**
**
**
**
**
**
**
**
**
**
计算机技术基础试题
第 7页(共8页)
)
评卷人
七、程序填空(本大题共1小题,共 6 分。
39、invert(
)函数的功能是将一个字符串str的内容倒序存放。
例如:字符串str原内容为:abcde,函数调用后变为:edcba。
void invert(char str[])
{ int i,j,k;
j= ______________;
for
(i=0;i
str[i]=str[j];
str[j]=_____________;
}
}
main()
{ char test[]=
invert(test);
printf(
}
得分
课程代码:A100002
座位号:
计算机技术基础试题 第8页(共11页)
**
**
**
《计算机技术基础(C语言)》试卷A标准答案
**
**
**
学院: 班级:
**
20 年 月 日
**
**
第一部分 选择题(共 30 分)
**
一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题
**
**
得 2 分,共 30 分)
**
1、D 2、C 3、B 4、D 5、B
装
6、A 7、C 8、D 9、C 10、A
装
**
11、A 12、B 13、B 14、A 15、A
**
第二部分 非选择题(共 70 分)
订
**
**
二、判断题(本大题共 10 小题,每题1分,共 10
分,答T表示说法正确.
线
**
答F表示说法不正确,本题只需指出正确与错误,不需要修改)
**
16、F 17、F 18、F 19、F
20、T
内
**
**
21、T 22、F
23、T 24、F 25、F
三、填空题(本大题共 6 小题,每题 3
分,共 18 分。)
答
**
**
26、指向(1份),乘(1分);定义的变量是指针变量(1分)
**
27、15(2分),20(1分)
题
订28、456(2分),6(1分)
**
29、5(2分)、8(1分)
无
**
**
30、编译(1分)、连接(1分)、运行(1分)
效
**
31、不能(3分)
**
四、简答题(本大题共 2 小题,每题 3
分,共 6 分。)
**
**
32(3分)、32、C语言中变量的存
储类别有几种?局部变量的缺省存
**
储类别是哪种。
**
变量的存储类别分为两大类:静态存储类和动态存储类。具体包含四种:
**
线
自动的(auto)、静态的(static)、寄存器的(registe
r)、外部的(extern)。
**
局部变量的缺省存储类别是auto变量。
**
**
33(3分)、请简单说明C程序的执行过程。
**
答:(1) file.c是源文件,通过编辑得到;(2)
是目标文件,即计算
**
**
机能够处理的由二进制指令组成的文件,通过对源文件进行编译得到;(3)
**
是可执行文件,通过将目标文件与其他目标文件或库函数连接得
**
到。
**
**
五、阅读程序回答问题(本大题共 4 小题,每题 5 分,共 20
分)
**
34、((1)(2分)程序的运行结果:a计算机技术基础试题 第 9页(共8页)
(2)(1分)形参:x,
y;实参:a, b
(3)(2分)#include
stdio.h包含到该程序中。
35、(1)(2分)运行结果
7 8 9 (2)(3分)运行结果变成 7 7 7
因为在原来的程序中用static定
义的变量c是局部静态变
量,具有全局寿命,而修改后,变量c变成了局部动态变量,在函
数调
用出现时给这个变量分配内存单元。
36、(1)(3分)运行结果 array a:
array b:
1 2 3
1 4
4 5 6
2 5
3 6
(2)(2分) 输出结果为:
array
a: array b:
1
2 3 1 2
4 5
6 4 5
随机数 随机数
37、(1)该程序的功能是由小到大输出两个数
(2)* 表示指向运算符;
&表示取地址运算符。
(3)x=3,y=5
六、编写程序(本大题共1小题,共 10
分。)
38、输入两个正整数m和n,求其最大
公约数和最小公倍数。(先画N-
S流程图,
然后编写程序)。
main( )
{ int
p,r,m,n,t;
scanf(“%d,%d”,&n,&m);
if(n
p=n*m
while(m!=0)
{r=n%m n=m m=r }
输入n,m
n
t=n;
n=m;
m=t;
p=n*m;
m!=0
r=n%m;n=m;m=r;
最大公约数n,最小公倍数pn
printf(”,n);
printf(”,pn);
}
七、程序填空(本大题共1小题,共 6 分。)
39、(1)
strlen(str)-1
(3分),(2) k (3分)
计算机技术基础试题 第10页(共11页)
**
**
**
**
**
**
**
**
**
**
**
**
**
装
装
**
**
订
**
**
线
**
**
内
**
**
答
**
**
**
题
订
**
无
**
**
效
**
**
**
**
**
**
**
线
**
**
**
**
**
**
**
**
**
**
**
计算机技术基础试题第 11页(共8页)
**
**
**
课程代码:A100002
座位号:
**
**
**
**
《计算机技术基础(C语言)》试卷A
**
**
**
姓名: 学号:
专业:
**
**
**
学院: 班级:
装
20 年 月 日
装
**
**
题号 一 二 三 四 五 六 七 总分
订
**
**
得分
线
**
**
内
**
第一部分 选择题(共 30
分)
**
得分 评卷人
答
**
**
**
一、单项选择题(本大题共 15
小题,每题只有一个
正确答案,答对一题得 2 分,共 30 分)
题
订
**
无
**
1、以下关于C语言标识符的描述中,正确的是
【 】。
**A)标识符可以由汉字组成 B)标识符只能以字母开头
效
**
**
C)关键字可以作为用户标识符
D)Area与area是不同的标识符
**
2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【
】。
**
int i,j,k;
**
**
scanf(“%d,%3d%d”,&i,&j,&k);
**
printf(“%d,%d,%dn”,i,j,k);
线
A)12345678
B)123,456,78 C)123,45678 D)123,*45678
**
**
3、判断char类型的变量c1是否为数字字符的正确表达式为
【 】。
**
A) (c1>=0)&&(c1<=9)
B) (c1>=’0’)&&(c1<=’9’)
**
**
C)
’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’)
**
**
4、若有语句int
a=1,b=2,c=3;则以下值为0的表达式是 【 】。
**
A)’a’&&’b’ B)a<=b C)((a>b)||(b
**
**
5、已知:int a[2][3]; 则对数组元素的非法引用是
计算机技术基础试题
第 1页(共8页)
【 】
A.
*(a[0]+2) B. a[1][3] C . a[1][0]
D. *(*(a+1)+2)
6、在循环语句的循环体中执行break语句,其作用是
【 】。
A) 跳出该循环体,提前结束循环
B)
继续执行break语句之后的循环体各语句
C) 结束本次循环,进行下次循环
D)
终止程序运行
7、执行语句for(i=10;i>0;i--);后,变量i的值为
A)10 B)9 C)0 D)1
8、若有int *p1, *p2,k; 不正确的语句是
A. p1=&k B. p2=p1
C. *p1=k+12
D. k=p1+p2
9、在函数中未指定存储类别的局部变量,其隐含的存储类别是
A. 静态(static) B. 外部(extern)
C. 自动(auto)
D. 寄存器(register)
10、如下程序的输出结果是
main( )
{ int x=2,a=0,b=0;
switch(x)
{ case 2: a++; b++;
case 1: ++a; b--;
break;
case 0: b++;}
printf(
A.
a=2, b=0 B. a=2, b=1 C. a=1, b=1
D. a=1, b=0
11、表示关系aA. (aC. (a12、
有以下程序
#include
main()
{int x;
scanf(“%d”,&x);
if(x<=3) else
if(x
!=10)printf(“%dn”,x); }
计算机技术基础试题 第2页(共11页)
】。
】
】
】
】
【
【
【
【
【
**
**
程序运行时,输入的值在哪个范围才会有输出结果。 【
】
**
A.不等于10的整数
B.大于3且不等于10的整数
**
C.大于3或不等于10的整数
D.小于3的整数
**
**
13、break语句的正确用法是
【 】
**
A.
无论在任何情况下,都中断程序的执行,退出到系统下一层。
**
B.
在多重循环中,只能退出最靠近的那一层循环语句。
**
**
C.
跳出多重循环。 D. 只能修改控制变量。
**
14、若a, b, c, d均为整型变量,执行以下程序段后的t的值为 【 】
**
#define MAX(A,B) (A)<(B)?(A):(B)
**
................
装
a=5;
b=3; c=3; d=4;
装
**
t=MAX(a+b,c+d) *10;
**
A. 70 B. 7
C. 8 D. 80
订
**
**
15、执行以下程序段后, m的值为
【 】
int a[6]={1,2,3,4,5,6}, m, *p;
线
**
**
p=&a[0];
m=(*p)*(*(p+2))*(*(p+4));
内
**
**
A)
15 B) 14 C) 13 D)
12
答
**
**
**
第二部分 非选择题(共
70 分)
题
订
**
无
**
得分 评卷人
二、判断题(本大题共 10 小题,每题1分,共 10
分,
**
答T表示说法正确.答F表示说法不正确,本题只需指
效
**
**
出正确与错误,不需要修改)
**
16. 字符型数据不可以进行加减运算。
【 】
**
17. 函数定义与函数的声明是一回事。
【 】
**
18.在C语言中函数能嵌套调用,也能嵌套定义。
【 】
**
19. 在C 语言中switch 语句必须使用break 语句。
【 】
**
线
20. for循环中的三个表达式都可以省略。
【 】
21. do-while循环是先进行循环体语句,后判断表达式。 【
】
**
**
22. 只能在main()函数中定义静态变量。
【 】
**
23. char *s1=“I love
china”;定义了一个指针变量s1,它的初值为字符
**
串“I love
china”的首地址。 【 】
**
24. int *p[4];与int
(*p)[4];的作用相同,都是定义了一个指向数组
**
**
的指针。
【 】
**
25. 预处理命令行最后也是以分号(;)结尾的。
【 】
**
**
**
计算机技术基础试题 第
3页(共8页)
得分 评卷人
三、填空题(本大题共 6
小题,每题 3 分,共 18 分。)
26、在C语言中 * 作为单目运算符时表示____________,作为双目运算符时表示__________,而作为一种标记时表示______________。
27、表达式(a=3*5,a*4),a+5中a的值是__________,整个表达式的值是
_________。
28、设有如下的类型说明:
int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
若数组所占内存单元的起
始地址为446且整型数据占2个字节,则p+5=_______,
*(p+5)=______。
29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内存字
节数分别
为_________和__________。
union stu1
struct stu2
{ int num;
{int num;
char name[5];
char name[5];
char s; }x;
char s; }y;
30、在TC中C
TRL+F9的功能是__________、__________和_____________。
31、有以下程序
#include
main()
{char c1,c2;
scanf(“%c”,&c1)
while(c1<65||c1>96) scanf(“%c”,&c1)
c2=c1+32;
printf(“%c,%c”,c1,c2);
}
程序运行输入65回车后,能否输出结果。(请回答能或不能)______。
得分
计算机技术基础试题
第4页(共11页)
评卷人
四、简答题(本大题共 2 小题,每题 3
分,共 6 分。)
32、C语言中变量的存储类别有几种?局部变量的缺省存储类别是
哪种。
**
**
33、请解释以下与一个C程序有关的
3种文件(需要说明这些文件是
**
什么文件、如何形成的):(1)
file.c (2) (3)
**
**
**
**
**
**
**
**
**
**
装
得分 评卷人
五、阅读程序回答问题(本大题共 4 小题,每题
5分,
装
**
共 20 分)
**
订
**
**
线
**
34
、
#include
**
void main()
内
**
{ int
a=10,b=18;
**
fun1(a,b);
答
**
}
**
**
int fun1(int x,int y)
题
订
{ if(x>y)
**
printf(
无
**
else if(x
else printf(
效
**
}
**
问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)解
**
释#include
**
**
**
**
线
**
**
**
**
**
**
**
**
**
**
**
计算机技术基础试题 第 5页(共8页)
35、int
fun(int a)
{ int b=0;
static
int c=3;
b=b+1;
c=c+1;
return(a+b+c);}
main( )
{ int a=2, i;
for(i=0;
i<3; i++)
printf(“%d”, fun(a)); }
问题:(1)
写出该程序的运行结果;(2) 如果将static int c=3; 语句改写成int
c=3; ,则运行结果如何变化?为什么?
36、main( )
{ int
a[2][3]={1,2,3,4,5,6}, b[3][2], i, j;
printf(“array a:n”);
for(i=0;i<=1;i++)
{ for(j=0;j<=2;j++)
{printf(“%5d”,
a[i][j]);
b[j][i]=a[i][j];} *第七行*
printf(“n”);}
printf(“array b:n”);
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf(“%5d”, b[i][j]);
printf(“n”);}
}
问题:(1) 写出程序的运行结果;(2)如果将第七行中的b[j][i]=a[i]
[j];语句改写成
b[i][j]=a[i][j];,则结果如何变化。
计算机技术基础试题
第6页(共11页)
**
37、#include
**
**
void fun(int *p1, int *p2)
**
{
int t;
**
t=*p1; *p1=*p2; *p2=t; }
**
void main()
**
{ int x,y;
**
int *p1,*p2;
**
**
scanf( %d
**
p1=&x; p2=&y;
**
if(x>y) fun(p1,p2);
**
printf( }
装
问题:(1) 该程序的功能是什么;(2) 程序中的
* 和 & 分别代
装
**
表什么运算符?(3)若输入 5 3
,则运行结果如何?
**
订
**
**
线
**
**
内
**
**
答
**
**
**
题
订
**
无
**
得分 评卷人
六、编写程序(本大题共1小题,共 10 分。)
**
效
**
38、输入两个正整数m和n,求其最大公约数和最小
**
公倍数。(先画N-
S图,然后再编写程序代码)
**
**
**
**
**
线
**
**
**
**
**
**
**
**
**
**
**
计算机技术基础试题
第 7页(共8页)
)
评卷人
七、程序填空(本大题共1小题,共 6 分。
39、invert(
)函数的功能是将一个字符串str的内容倒序存放。
例如:字符串str原内容为:abcde,函数调用后变为:edcba。
void invert(char str[])
{ int i,j,k;
j= ______________;
for
(i=0;i
str[i]=str[j];
str[j]=_____________;
}
}
main()
{ char test[]=
invert(test);
printf(
}
得分
课程代码:A100002
座位号:
计算机技术基础试题 第8页(共11页)
**
**
**
《计算机技术基础(C语言)》试卷A标准答案
**
**
**
学院: 班级:
**
20 年 月 日
**
**
第一部分 选择题(共 30 分)
**
一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题
**
**
得 2 分,共 30 分)
**
1、D 2、C 3、B 4、D 5、B
装
6、A 7、C 8、D 9、C 10、A
装
**
11、A 12、B 13、B 14、A 15、A
**
第二部分 非选择题(共 70 分)
订
**
**
二、判断题(本大题共 10 小题,每题1分,共 10
分,答T表示说法正确.
线
**
答F表示说法不正确,本题只需指出正确与错误,不需要修改)
**
16、F 17、F 18、F 19、F
20、T
内
**
**
21、T 22、F
23、T 24、F 25、F
三、填空题(本大题共 6 小题,每题 3
分,共 18 分。)
答
**
**
26、指向(1份),乘(1分);定义的变量是指针变量(1分)
**
27、15(2分),20(1分)
题
订28、456(2分),6(1分)
**
29、5(2分)、8(1分)
无
**
**
30、编译(1分)、连接(1分)、运行(1分)
效
**
31、不能(3分)
**
四、简答题(本大题共 2 小题,每题 3
分,共 6 分。)
**
**
32(3分)、32、C语言中变量的存
储类别有几种?局部变量的缺省存
**
储类别是哪种。
**
变量的存储类别分为两大类:静态存储类和动态存储类。具体包含四种:
**
线
自动的(auto)、静态的(static)、寄存器的(registe
r)、外部的(extern)。
**
局部变量的缺省存储类别是auto变量。
**
**
33(3分)、请简单说明C程序的执行过程。
**
答:(1) file.c是源文件,通过编辑得到;(2)
是目标文件,即计算
**
**
机能够处理的由二进制指令组成的文件,通过对源文件进行编译得到;(3)
**
是可执行文件,通过将目标文件与其他目标文件或库函数连接得
**
到。
**
**
五、阅读程序回答问题(本大题共 4 小题,每题 5 分,共 20
分)
**
34、((1)(2分)程序的运行结果:a计算机技术基础试题 第 9页(共8页)
(2)(1分)形参:x,
y;实参:a, b
(3)(2分)#include
stdio.h包含到该程序中。
35、(1)(2分)运行结果
7 8 9 (2)(3分)运行结果变成 7 7 7
因为在原来的程序中用static定
义的变量c是局部静态变
量,具有全局寿命,而修改后,变量c变成了局部动态变量,在函
数调
用出现时给这个变量分配内存单元。
36、(1)(3分)运行结果 array a:
array b:
1 2 3
1 4
4 5 6
2 5
3 6
(2)(2分) 输出结果为:
array
a: array b:
1
2 3 1 2
4 5
6 4 5
随机数 随机数
37、(1)该程序的功能是由小到大输出两个数
(2)* 表示指向运算符;
&表示取地址运算符。
(3)x=3,y=5
六、编写程序(本大题共1小题,共 10
分。)
38、输入两个正整数m和n,求其最大
公约数和最小公倍数。(先画N-
S流程图,
然后编写程序)。
main( )
{ int
p,r,m,n,t;
scanf(“%d,%d”,&n,&m);
if(n
p=n*m
while(m!=0)
{r=n%m n=m m=r }
输入n,m
n
t=n;
n=m;
m=t;
p=n*m;
m!=0
r=n%m;n=m;m=r;
最大公约数n,最小公倍数pn
printf(”,n);
printf(”,pn);
}
七、程序填空(本大题共1小题,共 6 分。)
39、(1)
strlen(str)-1
(3分),(2) k (3分)
计算机技术基础试题 第10页(共11页)
**
**
**
**
**
**
**
**
**
**
**
**
**
装
装
**
**
订
**
**
线
**
**
内
**
**
答
**
**
**
题
订
**
无
**
**
效
**
**
**
**
**
**
**
线
**
**
**
**
**
**
**
**
**
**
**
计算机技术基础试题第 11页(共8页)