国家二级(C语言)机试模拟试卷420
选择题
1.计算机能直接执行的程序是( )。(D)
A. 源程序
B. 目标程序
C. 汇编程序
D. 可执行程序
解析:计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe。所以选择D选项。
2.假设有语句sizeof(double),则它是( )。(A)
A. 一个整型表达式
B. 一个双精度浮点型表达式
C. 一种函数调用
D. 一种函数定义
解析:sizeof(double)是C语言内部规定的一个计算参数(double)在计算机的内存中所占用的字节数量的函数,它返回一个整数值。
3.以下程序:
#include
main()
{ char str[10];
scanf(“%s”,&str);
printf(“%s\ntt str):
}
运行上面的程序,输入字符串how are you,则程序的执行结果是( )。(A)
A. how
B. how are you
C. h
D. howareyou
解析:当从键盘输入how are you时,由于scanf输入函数的特点是遇到空格时结束读入字符,因此,该程书只将how这3个字符送到了字符数组str中,并在其后自动加上结束符“\0”。
4.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈是按“先进后出”的原则组织数据的。队列是按“先进先出”的原则组织数据的。
5.若定义函数int*func(),则函数func的返M值为( )。(B )
A. 一个实数
B. 一个指向整型变量的指针
C. 一个指向整型函数的指针
D. 一个整型函数的入口地址
解析:今题考查函数返回值。fun函数的返回值类型为int*类型,即函数返回一个指向整型变量的指针。
6.下述程序的输出结果是( )。
#include
void main()
{ int a[20],*p[4];
int i,k=0;
for(i=0;i<20;i++)
a[i]=i;
for(i=0;i<4;i++)
p[i]=&a[i*i+1];
for(i=0;i<4;i++)
{ k=k+*p[i];}
printf(\\(B )
A. 10
B. 18
C. 6
D. 数组元素引用不合法,输出结果不定
解析:第一个for循环,给数组a的20个元素分别赋值0—19;第二个for循环,给数组p赋值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三个for循环,将数组p 中元素的值进行累加,k=1+2+5+10=18。
7.下面函数的功能是( )。
SSS(S,t)
char*s,*t;
{while(*s);
while(*t)
*(s++)=*(t++);
return S;
}(D)
A. 将字符串S复制到字符串t中
B. 比较两个字符串的大小
C. 求字符串的长度
D. 将字符串t续接到字符串S中
解析:本题考查指针变量的运用。本题中的函数实质上是将字符串t续接到字符串s中。
8.设有定义:char*c;,以下选项中能够使字符型指针c正确指向一个字符串的是( )。(A)
A. char str[]=’’string’’;c=str;
B. scanf(’’%s’’,c);
C. c=getchar();
D. char str[]=’’string’’;strcpy(’’c,str’’)
解析:在题目的题干中定义了字符指针变量c,在选项A中,首先定义字符数组str,然后再把字符数组str的首地址赋给字符指针变量c。所以选项A是正确的。在选项B中,指针c没有正确初始化,指向的地址是为止的,因此不能在scanf函数中使用;在选项C中,getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕,如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取,即c只能指向一个字符而不能指向字符串;在选项D中,strcpy函数用于字符串拷贝,函数有两个参数,因此strcpyt:’’c,str\\
9.以下选项中,能用作数据常量的是( )。(A)
A. 115L
B. 0118
C. 1.5e1.5
D. 0115
解析:A选项中115L表示115是长整型数据,合法。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。C选项中e后面应该是整数不能是小数1.5,所以C错误。D选项中八进制常量应该是数字“0”开始,而不是字母“o”开始。
10.有以下程序:
voi dss(char*s,char t)
{while(*s)
{if(*s==t)*s=t-’a’+’A’;
s++;}
}
main()
{char str1[100]=\\(B)
A. ABCDDEFEDBD
B. abcDDfefDbD
C. abcAAfefAbA
D. Abcddfefdbd
解析:函数ss(char*s,char t)的功能是将指针s所指向的字符串中存在的字符“t”均改写成大写字母;所以main函数中引用函数ss后使得数组str1中的小写字母“d”均变成了大写字母“D”,然后输出数组str1,结果为:abcDDfefDbD。
11.设有如下关系表:
(C)
A. T=R/S
B. T=R×S
C. T=R∩S
D. T=R∪S
解析:T就是关系R中有的,同时S中也有的有序组(4、5、6),即交运算(∩)。
12.下列工具中,不属于结构化分析的常用工具的是( )。(D)
A. 数据流图
B. 数据字典
C. 判定树
D. N-S图
解析:结构化分析的常用工具有数据流图、数据字典、判定树和判定表。
13.程序设计的任务包括( )。(D)
A. 编写程序代码并上机调试
B. 确定所用数据结构
C. 确定所用算法
D. 以上选项均正确
解析:程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)
本文档预览:3600字符,共15061字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载