二级C语言笔试-250
(总分:100.00,做题时间:90分钟)
一、选择题(总题数:40,分数:70.00)
1.下列说法不正确的是
(分数:2.00)
(分数:2.00)
A.int *fun();----fun是一个返回int指针的函数
B.int (*fun)();---fun是一个返回int指针的函数 √
C.int (*array[5])();----array是一个有5个元素的数组,每一个元素都是一个函数指针,指向一个返回int的函数
D.int (*fun(int))(int);----fun是带有一个int参数的函数,返回值是一个函数指针,这个指针指向
带有一个int参数并返回int的函数
解析:[解析] 该函数中fun是一个函数指针。指向一个返回int的函数。
2.下面程序的运行结果是( )。
#include"stdio.h"
main()
int i;
for(i=1;i<=5;i++)
if(i%2)
printf("*");
else
printf("#");
#include"stdio.h"
main()
int i;
for(i=1;i<=5;i++)
if(i%2)
printf("*");
else
printf("#");
(分数:2.00)
A.*#*#* √
B.#*#*#*
C.*#*#
D.#*#*
解析:[解析] 分析程序呵知.程序循环5次,然后利用if语句决定每次循环时输出的字符。当i为奇数时,i%2=1,if(i%2)为真,输出“*”;当i为偶数时,i%2=0,if(i%2)为假,执行else语句,输出“#”,所以当i取1、3、5值时输出“*”,当i取2、4值时输出“#”。
3.需求分析阶段的任务是( )。
(分数:2.00)
(分数:2.00)
A.软件开发方法
B.软件开发工具
C.软件开发费用
D.软件系统功能 √
解析:[解析] 需求分析足软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
4.在数据库系统的组织结构中,下列( )映射把用户数据库与概念数据库联系了起来。
(分数:2.00)
(分数:2.00)
A.外模式/模式 √
B.内模式/外模式
C.模式/内模式
D.内模式/模式
解析:[解析] 数据库有两层映像,即外模式/模式和模式/内模式映像。模式/内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。
5.下列程序的输出结果是( )。
#include<stdio.h>
void fun(int*a,int*b)
int *k;
k=a;a=b;b=k;
main()
int a=1,b=2,*x=&a,*y=&b;
fun(x,y);
#include<stdio.h>
void fun(int*a,int*b)
int *k;
k=a;a=b;b=k;
main()
int a=1,b=2,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
(分数:2.00)
(分数:2.00)
A.2 1
B.1 2 √
C.编译出错
D.0 0
解析:[解析] 本题考查函数凋用时的参数传递。分析题目可知fun函数的形参是指向实参的指针,但main()函数中调用fun()函数时,实参是指引变量x、y(分别为指向a和b的指针)。a、b的值在函数调用前后未发生变化,因而a=1,b=2,即输出12。
6.有以下字符串,说明表达式strlen(s)值的是( )。
char s[10]='a','/n','a','b','/t','c';
(分数:2.00)
char s[10]='a','/n','a','b','/t','c';
(分数:2.00)
A.10
B.1
C.6 √
D.7
解析:[解析] strlen(s)返回s字符串中字符的个数,若s是一个数组,则返回数组元素的个数。
7.当输入为"Fool&Swalow"时,下面程序的执行结果是( )。
printf输出格式16
printf输出格式16
#include<stdio.h>
main()
char c;
while(c!='?')
c=getchar();
putchar(C) ;
(分数:2.00)
main()
char c;
while(c!='?')
c=getchar();
putchar(C) ;
(分数:2.00)
A.Swalow
B.Fool
C.Fool? √
D.?Swalow
解析:[解析] 本程序是通过getchar()函数读入字符,并通过putchar()函数将字符逐个输出,当用户输入“?”时停止输出。
8.有以下程序:
main()
int n=0;
do
n++;
printf("%d/n",n);
while(n<=3);
程序的输出结果是( )。
(分数:2.00)
main()
int n=0;
do
n++;
printf("%d/n",n);
while(n<=3);
程序的输出结果是( )。
(分数:2.00)
A.1
2
2
B.1
2
3
2
3
C.1
2
3
4 √
2
3
4 √
D.1
解析:[解析] 本题考查do…while循环。在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时,得到n=3,while循环表达式仍然成立,接着执行直到n=4,表达式不成立,跳出循环,结束程序。
9.有以下程序:
main()
int k=33;
printf("%d,%o,%x",k,k,k);
执行后的输出结果是( )。
(分数:2.00)
main()
int k=33;
printf("%d,%o,%x",k,k,k);
执行后的输出结果是( )。
(分数:2.00)
A.33,033,0x21
B.33,033,21
C.33,041,021
D.33,41,21 √
解析:[解析] 本题考查不同进制间的转换。printf输出函数中输出变量的格式,由输出格式符决定。题中“%o”格式符表示以八进制的形式输出;“%x”格式符表示以十六进制的形式输出。“33”的八进制和十六进制分别是41和21。
10.以下对联合类型叙述正确的是( )。
(分数:2.00)
(分数:2.00)
A.可以对联合变量名直接赋值
B.使用联合变量的目的是为了节省内存 √
C.任何一个联合变量可以同时引用联合中的不同成员
D.联合类型定义中不能同时出现结构类型的成员
解析:[解析] 由于联合体是同一存储区域由不同类型的变量共享,所以不可以直接对联合体
变量名进行赋值,且联合体中的空间在某一时刻只能保持某一成员的数据:另外合体中可以出现结构类型的成员。
11.以下4个选项,不能看作一条语句的是( )。
(分数:1.00)
(分数:1.00)
__________________________________________________________________________________________
解析:[解析] if语句是用来判定所给的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“{
在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“{
12.若变量都已正确说明,则以下程序段( )。
#include<stdio.h>
main()
#include<stdio.h>
main()
int a=8;
int b=6;
printf(a>b?"&&&a=%d":"!!!b=%d",a,b);
(分数:1.00)
int b=6;
printf(a>b?"&&&a=%d":"!!!b=%d",a,b);
(分数:1.00)
A.输出为:&&&a=8 √
B.输出为:!!!b=8
C.输出为:&&&a=8 !!!b=6
D.全部错误
解析:[解析] 本题考查printf的输出格式和条件表达式“?:”的使用。①printf函数输出时,“&&&%d/n”和“!!!%d/n”中的“&&&”和“!!!”都足直接输出。②条件表达式的基本格式为:a?
b:c。其运算规则为:当a为非0时,整个表达式的值取b的值,当a为0时,整个表达式取c的值。printf函数中如果在格式说明符之前插入任何字符都将原样输出。本题中a>b为真,所以返回“&&&a=%d”。
13.下面说法正确的是( )。
(分数:1.00)
(分数:1.00)
A.一个C程序可以有多个主函数
B.一个C语言的函数中只允许有一对花括号
C.C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内 √
D.在对C程序进行编译时,可以发现注释行中的拼写错误
解析:[解析] 本题涉及C语言基本的3个知识点:①C语言规定一个程序只允许有一个主函数,
一个函数内可以允许有多个花括号;②C程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释中的错误。
14.若有以下定义,则对a数组元素地址的正确引用是( )。
int a[5],*p=a;
(分数:1.00)
int a[5],*p=a;
(分数:1.00)
A.p+5
B.*a+1
C.&a+1
D.&a[0] √
解析:[解析] 本题考查如何引用数组元素的地址。选项A)中,p+5引用的足a[5]的地址,而数
组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误:选项B)中,*a+1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误:选项D)中,&a[0]引用的是数组的首地址。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论