二级C语言-18
(总分:79.00,做题时间:90分钟)
一、{{B}}选择题{{/B}}(总题数:35,分数:49.00)
1.以下程序企图把从终端输入的字符输出到名为 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include <stdio.h>
main()
{ FILE *fout; char ch;
fout=fopen('','w');
ch=fgetc(stdin);
while(ch!='#')
{ fputc(ch,fout);
ch =fgetc(stdin);
}
fclose(fout);
}
出错的原因是
A. 函数fopen调用形式有误
B. 输入文件没有关闭
C. 函数fgetc调用形式有误
D. 文件指针stdin没有定义

(分数:1.00)
 A. 
 B.
 C.
 D.
解析:[解析] 本题考核的知识点是文件的简单应用。stdin是标准输入设备的文件指针,不需定义直接可以使用,它随系统的启动而打开,随系统的关闭而关闭,fgetc()函数的作用是从某个文件中读取一个数据,其参数为要读取文件的文件指针,所以本题中的调用形式是正确的。fopen()函数有两个参数,第一个参数是打开的文件名,第二个参数是文件打开模式,两个参数都是字符串,本例中"fout=fopen('','w’);”语句的fopen()函数参数是错误的,应该用双引号"""",正确的应改为 fout=fopen(“”,“w”);。所以,A选项为所选。
2.在16位IBM-PC机上使用C语言,若有如下定义
struct data
{ int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是
A. 1
B. 2
C. 7
D. 11

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:[解析] 结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题
中整型变量i所占用的内存是2字节,字符型变量ch所占用的内存是1字节,双精度型变量f所占用的内存是8字节,三者相加即可。
3.以下叙述中正确的是 _____。
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出

(分数:1.00)
 A.
 B.
 C. 
 D.
解析:[解析] 算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。
4.下列关于栈的叙述中正确的是{{U}} {{/U}}。
A. 在栈中只能插入数据
B. 在栈中只能删除数据
C. 栈是先进先出的线性表
D. 栈是先进后出的线性表

(分数:2.00)
 A.
 B.
 C.
 D. 
解析:[解析] 栈是限定在一端进行插入与删除的线性表。 栈是按照“先进后出”的或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。
5.有以下程序段
char eh; int k;
ch='a'; k=12;
printf("%c,%d,",ch,ch,k); printf("k=%d/n",k);
已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A. 因变量类型与格式描述符的类型不匹配输出无定值
B. 输出项与格式描述符个数不符,输出为零值或不定值
C. a,97,12k=12
D. a,97,k=12

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:[解析] 输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。
6.面向对象方法中,继承是指
A. 一组对象所具有的相似性质
B. 一个对象具有另一个对象的性质
C. 各对象之间的共同性质
D. 类之间共享属性和操作的机制

(分数:2.00)
 A.
 B.
 C.
 D. 
解析:[解析] 本题考查继承的概念,属于记忆型题目。面向对象方法中,继承是指类之间共享属性和操作的机制。选项D正确。
7.设有定义:int a,*pa=&a;以下scanf语句巾能正确为变量a读入数据的是( )。 A) scanf("%d",pA) ;B) scanf("%d",A) ; C) scanf("%d",&pA) ; D) seanf("%d",*pA) ;
(分数:1.00)
 A. 
 B.
 C.
 D.
解析:[解析] 本题中定义了整型变量a和一个指向整型数据的指针变量pa,并定义pa是一个存放 a的地址的变量。选项B是应该将a改为&a,故选项B不正确;选项c应该将&pa改为pa,因为pa已经表示存放:的地址,故选项C不正确:选项D中*pa表示的是指针p8所指向
存储空间的变量的值,而不是一个地址,故选项D不正确,所以,4个选项十选项A符合题意。
8.可在C程序中用作用户标识符的一组标识符是
运算符优先级按从高到低排列∙ A. and _2007
B. Date y-m-d
C. Hi Df.Tom
D. case Big1

(分数:1.00)
 A. 
 B.
 C.
 D.
解析:[解析] 本题考查的知识点是:标识符。 用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。另外,标识符不能是C语言关键字。选项B中,y-m-d用了“-”所以不是标识符;选项C,Dr.Tom用了“.”也不是标识符;选项D中,case是 C语言关键字,所以不能用作标识符。故本题应该选择A。
9.有以下程序:
#include<stdio.h>
main()
{ int s;
scanf("%d",&s):
while(s>0)
{ switch(s)
{ case 1:printf("%d",s+5);
case 2:printf("%d",s+4);break;
case 3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
运行时,若输入123450<回车>,则输出结果是______。
A.66656
B.6566456
C.66666
D.6666656


(分数:1.00)
 A.
 B. 
 C.
 D.
解析:[解析] switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句,若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句,然后退出。所以输入1时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。
10.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的______。
A.总貌
B.细节
C.抽象
D.软件的作用

(分数:2.00)
 A. 
 B.
 C.
 D.
解析:
11.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是_______。
A. 可行性分析
B. 需求分析
C. 详细设计
D. 程序编码

(分数:1.00)
 A.
 B. 
 C.
 D.
解析:[解析] 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。
12.有以下程序:
main()
{int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%/n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456;p中的值为789,则正确的输入是 ______ 。
A.m=123 n=456p=789
B.m=123 n=456 p=789
C.m=123,n=456,p=789
D.123 456 789

(分数:1.00)
 A. 
 B.
 C.
 D.
解析:[解析] 根据本题的数据输入形式“scanf("m=%dn=%dp=%d",&m,&n,&p);”说明在输入数据时,必须输入“m=”、“n=”、“p”字符,且中间不能含有空格。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。