您的当前位置:首页正文

高校二级C模拟光盘与参考答案(新)

2021-07-19 来源:个人技术集锦
高校二级C模拟光盘与参考答案(新)

一、单选题(每题1分,共30分)

1.以读写方式打开一个已有的文本文件file1,下面fopen函数正确的调用方式是:( B )。 A. FILE *fp; ^fp=fopen(\"file1\B. FILE *fp; ^fp=fopen(\"file1\

C. FILE *fp; ^fp=fopen(\"file1\D. FILE *fp; ^fp=fopen(\"file1\

2.计算机在实现工业自动化中的应用主要是进行( A )。 A. 实时控制 B. 数据处理 C. 数值计算 D. 人工智能

3. 在计算机应用中,“计算机辅助设计”的英文缩写为 ( D )。 A. CAT B. CAE C. CAM D. CAD

4.微型计算机中使用的鼠标器是连接在 ( B )。 A. 并行接口上 B. 串行接口上 C. 显示器接口上 D. 打印机接口上

5.若有说明:char c='9',*sp1,*sp2; 以下均正确的一组赋值语句是( D A. sp1=&c;sp2=*sp1; B. sp1=&c;sp2=&sp1 C. sp1=&c;*sp2=*sp1; D. sp1=&c;sp2=sp1

6.微型计算机硬件系统中最核心的部件是 ( B )。 A. 主板 B. CPU C. 输入输出设 D. RAM和ROM

7.Windows 2000中将文件“发送到”软盘其实就是( B )。 A. 将文件压缩处理后保存到软盘 B. 将文件复制到软盘 C. 在软盘中建立文件的快捷方式 D. 移动文件到软盘

8.Windows 中“复制”命令的快捷键是( D )。 A.【Ait+C】 B.【Tab+C】 C.【Shift+C】

)。

D.【Ctrl+C】

9.复制活动窗口的信息到剪贴板,只须按下( A )键即可. A.【Alt+Print Screen】 B.【Ctrl+Shift】 C.【Print Screen】 D.【Alt+Esc】

10.与十六进制数(BC)等值的二进制数是( B )。 A. 10111001 B. 10111100 C. 10101100 D. 11011010

11.在Windows中,复制整个屏幕的信息到剪贴板,只须按下(A) A.【Print Screen】 B.【Alt+Print Screen】 C.【Ctrl+Shift】 D.【Alt+Esc】

12.下面关于Windows 操作系统中删除文件的说法,不正确的是( C )。 A. 在MS-DOS方式中被删除的文件不能被恢复 B. 网络上的文件被删除后不能被恢复 C. 直接用鼠标拖到\"回收站\"的文件不能被恢复

D. 可移动磁盘(如软盘)上的文件被删除后不能被恢复 13.在Windows资源管理器中,选定文件后,( B )直接删除文件而不把被删除文件送入回收站。

A. 按【Esc】键,再按【Del】键 B. 按【Shift+Del】键 C. 按【Alt+Del】键 D. 按【Ctrl+Del】键

14.如果在一个函数中的复合语句中定义了一个变量,则该变量( C )

A. 在该函数中有效 B. 在本程序范围内均有效 C. 只在该复合语句中有效 D. 为非法变量

15.下面四个选项中,均是不合法的整型数量的选项是( D )。 A.-0Xcdf 017 12,456 B.-018 999 5e2 C.-0f1 -0xffff 0011 D.-0x48eg -068 03f

16.若有代数式∶|3x+lgx|, 则正确的C语言表达式是( D ) A. fabs(x*3)+fabs(log(x)) B. fabs((x*3+log(x)) C. fabs(x*3)+fabs(log10(x)) D. fabs(x*3+log10(x))

17.若有变量说明: int a=0,b=0,c=0; ,以下符合C语言语法的赋值表达式是( C )。 A.a=9+b++=a+7;

B.a=9+b,b++; C.a=9+b; c=a+9; D.a=9+b+c=a+9;

18.以下选项中属于C语言数据类型的是( B ) A. 集合型 B. 双精度型 C. 逻辑型 D. 复数型 19.若以下变量均是整型,且num=Sum=7;则计算表达式Sum=num++,Sum++,++num后Sum的值为( C ) A. 10 B. 9 C. 8 D. 7

20.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始

输入数据时,

正确的数据输入方式是( A ),(注: _ 表示空格) int al,a2,char c1,c2;

scanf(\"%d%c%d%c\

x+=k;

( ① ); z+=y; }

printf(\"偶数之和=%d\\n\ printf(\"奇数之和=%d\\n\A. 10A20B B. 10A20_B C. 10_A_20_B D. 10A_20_B

21.设x、y均为float型变量,则以下不合法的赋值语句是( B )。 A. x*=y+8 B. y=(x%2)/10; C. x=y=0 D. ++x;

22.逻辑运算符两侧运算对象的数据类型( A )。 A.可以是任何类型的数据 B.只能是整型或字符型数据 C.只能是0或非0正数 D.只能是0或1

23.1) 以下程序的运行结果是( C )。 void main(void) {

int k=4,a=3,b=2,c=1;

printf(\"\\n%d\\n\;

}

A. 2 B. 3 C. 1 D. 4

24.判断char型变量c1是否为大写字母的正确表达式是( C )。 A.'A'<=c1<='Z'

B.(c1>='A')&(c1<='Z') C.(c1>='A')&&(c1<='Z') D.('A'<=c1)AND('Z'>=c1)

25. 若x、i、j、和k都是int型变量,则计算下面表达式后,x的值为( B )。 x=(i=4,j=16,k=32) A. 52 B. 32 C. 16 D. 4

26.下面程序的运行结果是( B )。 #include void main(void) {

int num=0;

while(num<=2) {

num++;

printf(\"%d \ } } A.1 2 3 4 B.1 2 3 C.1 2 D.1

27.若运行以下程序时, 从键盘输入ADescriptor3, 则下面程序的运行结果是( D ) #include void main(void) { char c;

int v0=0, v1=0,v2=0; do {

switch( c=getchar() ) {

case 'a': case 'A': case 'e': case 'E': case 'i': case 'I':

。 case 'o': case 'O':

case 'u': case 'U':v1+=1; default:v0+=1;v2+=1; }

} while( c!='\\n' );

printf(\"v0=%d,v1=%d,v2=%d\\n\ }

A. v0=8,v1=4,v2=8 B. v0=11,v1=4,v2=11 C. v0=7,v1=4,v2=7 D. v0=12,v1=4,v2=12

28.在C语言中, 引用数组元素时, 其下标的数据类型允许是( B )。 A. 整型表达式 B. 整型常量或整型表达式 C. 整型常量

D. 任何类型的表达式

29.下面程序段的运行结果是( B )。 char c[]=\"\\\v\\\\\\Owill\\n\"; printf(\"%d\A. 14 B. 3 C. 9

D. 字符串中有非法字符, 输出值不确定

30.判断字符串a和b是否相等, 应当使用( D )。

A. if (a=b)

B. if (strcpy(a,b)) C. if (a==b)

D. if (strcmp(a,b)) 二、填空题(共30分)

31.下面程序的功能是从键盘输入的最多10个整数中, 找出第一个能被7整除的数。若找到, 打印此数后退出循环, 否则打印\"not exist\"。(4分) #include void main(void) {

int i,a;

for(i=1;i<=10; i++) {

scanf(\"%d\

if (a%7==0) { printf(\"%d\ ① ; } }

if ( ② ) printf(\"not exist\\n\"); } ① break ② i%7!=0

32.下面程序的功能是检查一个矩阵是否对称, (对所有i,j都有a[i][j]=a[j][i])。(4分) void main(void) {

int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; int i,j,found=0; for(j=0;j<4;j++) for(i=0;i② ; break; }

if (found==1) printf(\"不对称\"); else printf(\"对称\"); }

① a[i][j]!=a[j][i] ② found=1

33.下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。(8分) void main(void) {

int a[5],max,min,i,j,k;

for(i=0;i<5;i++) scanf(\"%d\ min=a[0];

for(i=1;i<5;i++) /* 寻找最小数及其位置 */ if (a[i]min=a[i];

① ; /* 记住其最小数所在位置k */ } max=a[0];

for(i=1;i<5;i++) /* 寻找最大数及其位置 */ if (a[i]>max) {

max=a[i]; ② ; } ③ = max; ④ ;

printf(\"\\n The position of min is:%3d\\n\ printf(\"The position of max is:%3d\\n\ for(i=0;i<5;i++) printf(\"%5d\

}

① k=i ② j=i ③ a[k] ④ a[j]=min

34.下面程序的功能是输出两个字符串中较短串的长度值。(4分) #include\"stdio.h\" #include\"string.h\" void main(void) {

char strl[20],str2[20]; int i,k,num; gets(str1); gets(str2); i=strlen(str1); k=strlen(str2);

num= ① ? i : ② ; printf(\"%d\\n\ }

① i35.以下程序的运行结果是:( ① )。(5分) void main(void) {

int x[6],a=0,b,c=14; do {

x[a]=c%2; a++; c=c/2;

} while(c>=1); for(b=a-1;b>=0;b--)

printf(\"%d\数据之间不空格 */ printf(\"\\n\"); }

① 1110

36.以下程序的运行结果是:( ① )。(5分) void main(void) {

char ch[]=\"600erw87\";

int a,s=0;

for(a=0; ch[a]>= '0' && ch[a]<='9'; a++) s=10*s+ch[a]- '0'; printf(\"%d\

} ① 600

37.以下程序的运行结果是:( ① )。(5分) pp(int a, int *p) {

int c=4; *p=a+c; a=*p-c; } main() {

int a=1,b=2,c=3,*p; p=&b; pp(a+c, p);

printf(\"%d,%d\\n\ } ① 1,8

38.在C语言中,一个函数通常由两部分组成,它们分别是函数头和( ① )。说明:请填写三个汉字。(1分) ① 函数体

39.若有定义: int a[]={2,4,6,8,10,12};,则*(a+3)的值是( ① )。说明:填写阿拉伯数字。(1分) ① 8

40.若a是int型变量,且a的初值为6,则计算下面的表达式后a的值为( ① )。说明:填写阿拉伯数字。(1分) a*=a-=a ① 0

41.17^3的运算结果是( ① )。说明:填写阿拉伯数字。(1分) ① 18

42.在C语言中,格式化输入函数名是( ① )。说明:填写小写英文字母。(1分) ① scanf

43.若有以下定义和语句: int a[4]={0,1,2,3},*p; p=&a[1];

则++(*p)的值是( ① )。说明:填写阿拉伯数字。(1分) ① 2

44.若有说明语句: int x=1,y=0;则表达式x++>(y+x) ? x : 25>y++ ? x : y的值是( ① )。说明:填写阿拉伯数字。(1分) ① 2

45.若有宏定义:#define f(x) x*x

则f(3+2)的运算结果是( ① )。说明:填写阿拉伯数字。(1分) ① 11

46.在switch语句中,对各种开关值的枚举应当使用的语句关键字是( ① )。说明:填写小写英文字母。(1分) ① case

47.用while循环语句写的循环控制程序( ① )转化为用for循环语句来控制其循环。说明:填写“可以”或者“不能”两个汉字,不要输入双引号哦!(1分) ① 可以

三、判断题(每题1分,共10分)

48.字符型数据在内存中以其相应的ASCII码存储。 正确

49.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。 正确

50.关系表达式的值不可以作为整数参与算术运算。 错误

51.break语句也可以用于由if...goto构成的循环结构中以便退出循环。 正确

52.当关系表达式不成立时,其值为1。 错误

53.break语句不能用于循环语句和switch语句之外的任何其它语句中。 正确

54.数组的长度是固定的。 正确

55.若用数组名作为函数调用时的实参,则传递给形参的是数组的第一个元素值。 错误

56.宏的展开是在编译程序时进行的。 正确

57.存放变量地址的变量称为指针变量 正确

四、编程题

58.从键盘中输入一个正整数n,打印出小于它本身且大于它的3/7的所有约数p,即(3/7)n void main() {

int n,p;

scanf(“%d”,&n); for(p=1;pif(n%p==0&&p>n*3.0/7) printf(“%d ”,p); }

59.设计一个函数double add(double a[],int n, int m),求数组a中从下标n开始的连续m个元素的和。(5分)

#include #define N 10

double add(double a[],int n,int m) {

int i;

double sum=0;

for(i=n;ivoid main() {

int a[N],m,n,i; for(i=0;iscanf(\"%lf\ scanf(\"%d,%d\

printf(\"%lf\}

说明:编程的时候只需要填写红色部分

因篇幅问题不能全部显示,请点此查看更多更全内容