国家二级(C语言)机试模拟试卷498
选择题
1.数据库技术的根本目标是( )。(B)
A. 数据存储
B. 数据共享
C. 数据查询
D. 数据管理
解析:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。
2.有以下程序:
main()
{int k=33;
printf(\\(D)
A. 33,033,0x21
B. 33,033,21
C. 33,041,021
D. 33,41,21
解析:本题考查不同进制间的转换。printf输出函数中输出变量的格式,由输出格式符决定。题中“%o”格式符表示以八进制的形式输出;“%x”格式符表示以十六进制的形式输出。“33”的八进制和十六进制分别是41和21。
3.下列各选项中,不属于序言性注释的是( )。(D)
A. 程序标题
B. 程序设计者
C. 主要算法
D. 数据状态
解析:注释一般为序言性注释和功能性注释。序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。
4.有以下程序
#include
main()
{ int a=1,b=0;
printf(\\(A)
A. 1,2
B. 1,0
C. 3,2
D. 0,0
解析:考查数据的输入,printf(\\
5.以下关于C语言函数参数传递方式的叙述正确的是( )。(A)
A. 数据只能从实参单向传递给形参
B. 数据可以在实参和形参之间双向传递
C. 数据只能从形参单向传递给实参
D. C语言的函数,参数既可以从实参单向传递给形参,也可以在实参和形参之间双向传递,可视情况选择使用
解析:数据只能由实参单向传递给形参,称为“值传递”,数组名、指针等作参数,实参传递给形参的是地址值,这样形参和实参就指向同一段内存单元,在函数体内对形参数据的改变也将影响到实参的值。
6.有以下程序:
#include<stdio.h>
int f(int n)
{
static int a=1:
n+=a++;
return n;
}
main()
{
int a=3,s;
s=f(a);s=s+f(a);
printf(\\(C)
A. 7
B. 8
C. 9
D. 10
解析:在函数f中,整型变量a为静态变量,所以每次调用函数f时不再为a重新赋值,而且a的值只有在程序结束时才被释放。第一次调用f后n=4,a=2;第二次调用时,a已经变成2了,所以结果为4+5=9。
7.有以下函数:
int fun(char*x,char*y)
{int n=0;
while((*x==*y)&&*x!=’\0’){x++;y++;n++;}
return n;
}
函数的功能是( )。(C)
A. 将y所指字符串赋给x所指存储空间
B. 查找x和y所指字符串中是否有’\0’
C. 统计x和y所指字符串中最前面连续相同的字符个数
D. 统计x和y所指字符串中相同的字符个数
解析:本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。
8.以下程序段中的变量已定义为int类型,则
sum=pad=5;pad=sum++,pad++,++pad;
printf(\\(D)
A. 6
B. 4
C. 5
D. 7
解析:赋值运算符的优先级高于逗号运算符,因此语句“pad=sum++,pad++,++pad”的执行顺序为pad=sum++,pad=5;pad++,pad=6;++pad,pad=7,输出7。
9.已有定义“int a=3;”和输出语句“printf(\\(D)
A. 整型变量的输出格式符只有%d —种
B. %x是格式符的一种,它可以适用于任何一种类型的数据
C. %x是格式符的一种,其变量的值按十六进制数输出,但%8x是错误的
D. %8x是正确的格式符,其中数字8规定了输出字段的宽度
解析:本题考查printf函数的格式。“%8x”表示以十六进制无符号形式输出整型数据。 “8”表示指定输出数据的宽度为8位。
10.有以下程序
#include<stdio.h>
void main()
{int n=2,k=1;
while(!(k>0||n++));
printf(’’%d%d\n’’,k,n);
}
程序运行后的输出结果是( )。(D)
A. 0 2
B. 1 3
C. 5 7
D. 1 2
解析:在程序中整型变量n的初始值等于2,整型变量k的初始值等于1,在执行while语句时,由于表达式k的值大于0为真,所以不再需要判断“n++’是否为真,“(k>0‖n++)”表达式的值为真。“!(k>0‖n++)”表达式的值为假,所以while语句中的条件不满足,循环语句不会执行,变量n的值也不会加1,所在输出变量k和n的值是1和2。
11.以下叙述中错误的是( )。(A)
A. 使用三种基本结构构成的程序只能解决简单问题
B. 结构化程序由顺序、分支、循环三种基本结构组成
C. C语言是一种结构化程序设计语言
D. 结构化程序设计提倡模块化的设计方法
解析:已经证明,由顺序、分支、循环这三种基本结构组成的算法可以解决任何复杂的问题。选项A)叙述有误。
12.有以下程序:
#include
#include“string.h”
void fun(char*s[],int n)
{
char*t;int i.d;
for(i=0;i<n—1;i++)
for(j=i+1.j<n;j++)
if(strlen(s[i])>strlen(s[j]))
{t=s[i];s[i]=s[j];s[j]=t;}
}
main()
{
char*ss[]={“bcc”,“bbcc”,“xy”,“aaaacc”,“aabcc”);
fun(ss,5);printf(“%s,%s\n”,ss[0],ss[4]);
}
本文档预览:3600字符,共17026字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载