全国自考(计算机软件基础)模拟试卷1
单项选择题
1.一个完整的C程序由【 】构成。(B)
A. 一个主程序和一个子程序
B. 一个主函数和若干个子函数
C. 一个主函数和一个其他函数
D. 一个主函数和若干个子程序
解析:一个完整的C程序是由一个主函数和若干个子函数构成的,并且程序的执行总是从主函数开始。
2.下列叙述中错误的是 【 】(C)
A. 一个C程序至少包含一个函数
B. 一个C程序可以包含一个主函数和若干个其他函数
C. 主函数和其他函数之间可以相互调用
D. C程序的基本单位是函数
解析:主函数可以调用其他函数,但是其他函数不能调用主函数。
3.有以下程序:
#include
int fun(int a,int b)
{if(b==0)
return a;
else
return(fun(–a,–b));
}
main()
{printf(\\(B)
A. 1
B. 2
C. 3
D. 4
解析:因为题中实参为4和2,所以在函数fun中,形参a=4,形参b=2,不满足if语句的判定条件,所以执行else子句,继续调用函数fun,在此过程中a、b的值总是每调用一次函数则都减1,直至a=2,b=0为止,所以程序最后的结果为2。
4.局部变量的作用域是 【 】(D)
A. 该变量所在的程序
B. 该变量所在的文件
C. 主函数
D. 该变量所在的函数
解析:在函数内部定义的变量称为局部变量,局部变量的作用城就是其所在的函数。
5.下列程序的输出结果是 【 】
#include
fun(int x)
{int p;
if(x==0||x==1)return(3);
p=x—fun(x一2);
return p;
}
main()
{printf(\\(A)
A. 7
B. 2
C. 0
D. 3
解析:
6.下列关于C语言程序的叙述,正确的是 【 】(D)
A. main()所在行的末尾必须有“;”
B. 主函数的函数体不一定用花括号({})括起来
C. 一个完整的C程序可以没有任何函数
D. C语言程序的简单语句必须用分号(;)作为语句的结束符
解析:一个完整的C程序可由一个主函数main组成,或由一个主函数和若干个子函数构成,main()所在行的末尾没有“;”,主函数的函数体必须用花括号括起来。
7.以下程序的输出结果是 【 】
#include
int f()
(static int i=0;
int s=1:
s+=i;
i++;
return(s);
}
main()
(int i,a=0;
for(i=0;i<5;i++)a+=f();
printf(\\(C)
A. 1
B. 0
C. 15
D. 5
解析:
8.已知int a[100],*d=a;,下列语句错误的是 【 】(A)
A. a=d;
B. *d=a[10];
C. d=a+1;
D. d=&a[2];
解析:
9.已知char str1[30],*str2=\\(B)
A. 9
B. 10
C. 29
D. 30
解析:strcov(str1,str2)的功能是将str2的内容复制到str1中;str1en(str1)的功能是求字符数组所表示串的长度。
10.已知int a=5,b=3,*p=&b,*q=&a;,下列赋值语句中与b=a;等价的是 【 】(A)
A. *p=*q;
B. p=q;
C. *p=&q;
D. *p=*b;
解析:*p=&b,*q=&a;使指针p指向b,指针q指向a,则*p和b为同一个存储空间,则*q和a为同一个存储空间,所以与b=a;等价的语句是*p=*q;。
11.设有语句int x[]={1,2,3,4,5,6},*p=x;,则值为3的表达式是 【 】(B)
A. p+=2,*++p
B. p+=2,*p++
C. p+=2,++*p
D. p+=3,*p
解析:选项A、B、C中的“p+=2”使p指向敖组元素x[2](其值为3)。选项A中的“*++p”是先使p指向数组元素x[3],再取其值4。选项B中的“*p++”是先取P指向的数组元素x[2],其值为3,然后使p指向数组元素x[3]。选项c和D中的表达式的值均为4。
12.指针变量是指 【 】(D)
A. 整型变量
B. 下标变量
C. 变量的地址
D. 存放变量地址的变量
解析:指针就是它所指对象的地址。指针变量就是用来存放指针(地址)的变量。
13.设有数据定义语句struct xyz{int x;float y;char z;}xyz1;,则下面的说法中错误的是 【 】(C)
A. struct xyz可以看成一种数据类型符
B. xyz是用户定义的结构类型名称
C. xyz1可以用来定义该结构类型变量
D. X是结构类型的成员名
解析:在给定的结构类型的数据定义语句申,struct是定义结构类型时的系统保留字(关键字);xyz是用户任意选取的标识符,作为结构类型的名称;struct xyz可以看成是用户定义的一种结构类型的数据类型符,以后可以用它来定义这种结构类型的变量、数组、指针变量等;x、y、z是这种结构类型的成员名;“xyz1”是这种结构类型的变量名。
14.下列说法错误的是 【 】(A)
A. 在定义结构变量时不能给其赋初值
B. 可以取结构变量的地址
C. 可以取结构变量成员的地址
D. 结构类型的成员可以定义成该结构类型的指针类型
解析:
15.有以下程序:
#include
struct st
{ int x,y;
)data[2]={1,10,2,20};
main()
{ struct st*p=data;
printf(\\(C)
本文档预览:3500字符,共7645字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载