资源描述
. . . .
C语言无纸化考试选择题全真模拟试卷〔2〕
选择题〔〔1〕~〔40〕每题1分,共40分〕以下A)、B)、C)、D)四个选项中,只有一个选项是正确的。
〔1〕下面关于算法的表达中,正确的选项是〔〕。
A〕算法的执行效率与数据的存储结构无关
B〕算法的有穷性是指算法必须能在执行有限个步骤之后终止
C〕算法的空间复杂度是指算法程序中指令〔或语句〕的条数
D〕以上三种描述都正确
〔2〕以下二叉树描述中,正确的选项是〔〕。
A〕任何一棵二叉树必须有一个度为2的结点
B〕二叉树的度可以小于2
C〕非空二叉树有0个或1个根结点
D〕至少有2个根结点
〔3〕如果进栈序列为A,B,C,D,那么可能的出栈序列是〔〕。
A〕C,A,D,B B〕B,D,C,A C〕C,D,A,B D〕任意顺序
〔4〕以下各选项中,不属于序言性注释的是〔〕。
A〕程序标题B〕程序设计者C〕主要算法D〕数据状态
〔5〕以下模式中,能够给出数据库物理存储结构与物理存取方法的是〔〕。
A〕模式B〕外模式C〕概念模式D〕逻辑模式
〔6〕以下表达中,不属于软件需求规格说明书的作用的是〔〕。
A〕便于用户,开发人员进展理解和交流
B〕反映出用户问题的结构,可以作为软件开发工作的根底和依据
C〕作为确认测试和验收的依据
D〕便于开发人员进展需求分析
〔7〕以下不属于软件工程的3个要素的是〔〕。
A〕工具B〕过程C〕方法D〕环境
〔8〕数据库系统在其部具有3级模式,用来描述数据库中全体数据的全局逻辑结构和特性的是〔〕。
A〕外模式B〕概念模式C〕模式D〕存储模式
〔9〕将E-R图转换到关系模式时,实体与联系都可以表示成〔〕。
A〕属性B〕关系C〕记录D〕码
〔10〕某二叉树中度为2的结点有10个,那么该二叉树中有〔〕个叶子结点。
A〕9 B〕10 C〕11 D〕12
〔11〕以下表达中正确的选项是〔〕。
A〕C程序中注释局部可以出现在程序中任意适宜的地方
B〕C程序的书写格式是固定的,每行只能写一条语句
C〕构成C程序的根本单位是函数,所有函数名都可以由用户命名
D〕在对C语言程序进展编译时,可以发现注释行中的拼写错误
〔12〕以下合法的标识符是〔〕。
A〕12_3 B〕256 C〕a.55 D〕_abhj
〔13〕以下不正确的转义字符是〔〕。
A〕'\\' B〕'\d' C〕'\s' D〕'088'
〔14〕下面程序的运行结果是〔〕。
y=5; x=14; y=((x=3*y,x+6),x-1);
printf("x=%d,y=%d",x,y);
A〕x=27,y=27 B〕x=12,y=13 C〕x=15,y=14 D〕x=y=27
〔15〕sizeof(char)是〔〕。
A〕一种函数调用B〕一个整型表达式C〕一个字符型表达式D〕一个不合法的表达式
天行健,君子以自强不息:地势坤,君子以厚德载物!
2
〔16〕以下4个程序中,完全正确的选项是〔〕。
A〕#include <stdio.h> B〕#include <stdio.h>
main( ); main( )
{/*programming*/ {/* / programming / */
printf("programming! \n"); printf("programming!\n");}
C〕#include <stdio.h> D〕include <stdio.h>
main( ) main( )
{/* / programming*/ */ { /*programming */
printf("programming! \n");} printf("programming! \n");}
〔17〕设变量均已正确定义,假设要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10
和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的选项是〔注:□代表空格字符〕〔〕。
A〕10□X□20□Y<CR> B〕10□X20□Y<CR>
C〕10□X<CR> D〕10X<CR>
20Y<CR> 20□Y<CR>
〔18〕两次运行下面的程序,如果从键盘上分别输入3和2,那么输出结果是〔〕。
#include<stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x++>2)printf("%d",x);
else printf("%d\n",x--);
}
A〕4和3 B〕4和2 C〕4和1 D〕3和2
〔19〕以下表达中不正确的选项是〔〕。
A〕在不同的函数中可以使用一样的名字的变量
B〕函数中的形式参数是局部变量
C〕在一个函数定义的变量只在本函数围有效
D〕在一个函数的复合语句中定义的变量在本函数围有效
〔20〕以下程序:
#include<stdio.h>
main()
{
char Chr[20];
scanf("%s",&Chr);
printf("%s\n",Chr);
}
运行上面的程序,输入字符串Microsoft Visual Studio,那么程序的执行结果是〔〕。
A〕Microsoft Visual Studio B〕M C〕Microsoft D〕MicrosoftVisualStudio
〔21〕假设有"double a;",那么正确的输入语句是〔〕。
A〕scanf("%lf",a); B〕scanf("%f",&a); C〕scanf("%lf",&a) D〕scanf("%le",a);
〔22〕当a=3,b=5,c=9,d=7时,执行下面的程序段后,x的值为〔〕。
if(a<b)
if(c<d) x=4;
else
if(a<c)
if(b<d) x=6;
else x=8;
else x=9;
天行健,君子以自强不息:地势坤,君子以厚德载物!
3
else x=14;
A〕9 B〕6 C〕14 D〕4
〔23〕假设i、j已定义成int型,那么以下程序段中循环体的总执行次数是〔〕。
for(i=6;i>0;i--)
for(j=0;j<4;j++){…}
A〕20 B〕24 C〕25 D〕30
〔24〕以下选项中非法的字符常量是〔〕。
A〕'\\' B〕'\0201' C〕'\xAA' D〕'0'
〔25〕以下程序的输出结果是〔〕。
#include<stdio.h>
int m=13;
int fun(int x,int y)
{ int m=2;
return(x*y-m);
}
main()
{ int a=7,b=6;
printf("%d",fun(a,b)/m);
}
A〕1 B〕3 C〕7 D〕10
〔26〕下面说确的是〔〕。
A〕调用函数时,实参不可以是表达式,必须是数值
B〕调用函数时,实参与形参是共用存单元的
C〕调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等
D〕调用函数时,实参与形参的类型可不一致,编译器能够自动转换
〔27〕以下函数定义
fun(int *b,int c,int n,int data)
{int k;
for(k=0;k<m*n;k++)
{*b=data;
b++;}
}
那么调用此函数的正确写法是〔假设变量a的说明为int a[50]〕〔〕。
A〕fun(*a,4,5,1); B〕fun(&a,4,5,1); C〕fun((int*)a,4,5,1); D〕fun(a,4,5,1);
〔28〕以下程序段的输出结果是〔〕。
#include<stdio.h>
main()
{ char p[][4]={"ABC","DEF","GHI"};
int i;
for(i=0;i<3;i++)
puts(p[i]);
}
A〕A B〕A D G C〕A B C D〕A B C
B D E F
C G H I
〔29〕下面程序的运行结果是〔〕。
#include<stdio.h>
#include<string.h>
main()
{ char*s1="abDuj";
char*s2="ABdUG";
天行健,君子以自强不息:地势坤,君子以厚德载物!
4
int t;
t=strcmp(s1,s2);
printf("%d",t);
}
A〕正数B〕负数C〕零D〕不确定的值
〔30〕:int c[3][4];,那么对数组元素引用正确的选项是〔〕。
A〕c[1][4] B〕c[1.5][0] C〕c[1+0][0] D〕以上表达都错误
〔31〕以下程序:
#include<stdio.h>
#include<string.h>
main()
{ char str[]="abcd\n\123\xab";
printf("%d",strlen(str));
}
运行后的输出结果是〔〕。
A〕10 B〕9 C〕7 D〕14
〔32〕C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是〔〕。
A〕冠以关键字extern B〕位置在函数体外部
C〕作用围是全程的D〕位置在函数的外部
〔33〕设已执行预编译命令#include<string.h>,以下程序段的输出结果是〔〕。
char s[]="abcdefg";
printf("%d\n",strlen(s));
A〕7 B〕8 C〕9 D〕10
〔34〕假设有char s[3][3]={"AAA","BBB","CCC"};说明语句,那么与它等价的语句是〔〕。
A〕char**s={"AAA","BBB","CCC"};
B〕char*s[3]= {"AAA","BBB","CCC"};
C〕char s[][5]= {"AAA","BBB","CCC"};
D〕char s[][3]= {"AAA","BBB","CCC"};
〔35〕以下程序执行后的输出结果是〔〕。
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5]={0};
a=0; b[0]=3;
func(&a,b); printf("%d\n",b[0]);
}
A〕6 B〕7 C〕8 D〕9
〔36〕假设有如下说明,且int类型占两个字节,那么正确的表达为〔〕。
struct st
{ int a;
int b[2];
}a;
A〕结构体变量a与结构体成员a同名,定义是合法的
B〕程序只在执行到该结构体时才为结构体st分配存储单元
C〕程序运行时为结构体st分配8字节存储单元
D〕类型名struct st可以通过extern关键字提前引用
〔37〕假设有以下宏定义:
#define N 2
#define f(n)((N+1)*n)
那么执行语句a=3*(N+f(5));后的结果是〔〕。
天行健,君子以自强不息:地势坤,君子以厚德载物!
5
A〕语句有错误B〕a=51 C〕a=80 D〕a无定值
〔38〕设有一联合体变量定义如下:
union data
{ long a;
float b;
int c;
char d;
};
union data x;
执行以下语句后,正确的联合体变量x的值是〔〕。
x.a=111111;
x.b=2222;
x.c=2.1546;
x.d='R';
A〕111111 B〕2222 C〕2.1546 D〕R
〔39〕假设x=2,y=3,那么x&y的结果是〔〕。
A〕0 B〕2 C〕3 D〕5
〔40〕一个文件中存放假设干工人档案记录,其数据结构如下:
struct a
{char number [100];
int age;
float p[6];};
定义一个数组:
struct a number[10];
假定文件已正确打开,不能正确地从文件中读入10名工人数据到数组b中的是〔〕。
A〕fread(b,sizeof(struct a),10,fp);
B〕for(i=0;i<10;i++)
fread(b[i],sizeof(struct a),1,fp);
C〕for(i=0;i<10;i++)
fread(b+i,sizeof(struct a),1,fp);
D〕for(i=0;i<5;i+=2)
fread(b+i,sezeof(struct a),2,fp);
参考答案:
1~5:BBBDA 6~10:DDBBC 11~15:ADDCB 16~20:BAADC
21~25:CBBBB 26~30:CDCAC 31~35:CDADA 36~40:ABDBB__
7 / 7
展开阅读全文