C语言程序设计模拟试题一(含答案)
1 下列述叙中正确的是
A) 显示器和打印机都是输出设备
B) 显示器只能显示字符
C) 通常的彩显示器都有7种颜
D) 打印机只能打印字符和表格
2 微型计算机中运算器的主要功能是进行
A) 算术运算 B) 逻辑运算
C) 算术和逻辑运算 D) 初等函数运算
3 COMMAND.COMDOS系统的最外层模块,通常称之为
A) 引导程序 B) 输入输出系统
C) 命令处理系统 D) 文件管理系统
4
A) 网络信息检索服务
B) 通过Web网页发布的公告信息
C) 通过网络实时交互的信息传递方式
D) 一种利用网络交换信息的非交互式服务
5 和十进制数225相等的二进制数是
A) 11101110 B) 11111110
C) 10000000 D) 11111111
6 下列叙述中正确的是
A) 指令由操作数和操作码两部分组成\
B) 常用参数xxMB表示计算机的速度
C) 计算机的一个字长总是等于两个字节
D) 计算机语言是完成某一任务的指令集
7 计算机的内存储器比外存储器
A) 价格便宜 B) 存储容量大
C) 读写速度快 D) 读写速度慢
8 设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果
A) B盘上的A.TXT文件被复制到C盘的PRN文件
B) 屏幕上显示B盘上的A.TXT文件内容
C) B盘上的A.TXT文件内容在打印机上输出
D) B盘上的A.TXT文件被复制到B盘上的PRN文件
9 要将当前盘当前目录下的两个文件X1.TXTB1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B盘当前目录是什么,完成这件任务可以使用的命令是
A) COPY A:X1.TXT+C:B1.TXT Z.TXT
B) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXT
C) COPY A:X1.TXT+C:\\WS\\B1.TXT
D) COPY X1.TXT+B1.TXT B:Z.TXT
10 下列四组DOS命令中,功能等价的一组是
A) COPY A:*.* B:DISKCOPY A: B:
B) COPY ABC.TXT+XYZ.TXT TYPE XYZ.TXT>>ABC.TXT
C) COPY ABC.TXT+XYZ.TXTCOPY XYZ.TXT+ABC.TXT
D) TYPE *.FOR>CONCOPY *.FOR CON

11 设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令
A) DEL A*.TXT B) DEL \\AA\\A.TXT
C) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT
12 Windows中,启动应用程序的正确方法是
A) 用鼠标指向该应用程序图标
B) 将该应用程序窗口最小化成图标
C) 将该应用程序窗口还原
D) 用鼠标双击该应用程序图标
13 Windows中,终止应用程序执行的正确方法是
A) 将该应用程序窗口最小化成图标
B) 用鼠标双击应用程序窗口右上角的还原按钮
C) 用鼠标双击应用程序窗口中的标题栏
D) 用鼠标双击应用程序窗口左上角的控制菜单框
14 在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在
A) RAM B) ROM
C) 硬盘中 D) 寄存器中
15 使计算机病毒传播范围最广的媒介是
A) 硬磁盘 B) 软磁盘
C) 内部存储器 D) 互联网
16 设有 int x=11; 则表达式 (x++ * 1/3) 的值是
A) 3 B) 4
C) 11 D) 12
17 下列程序的输出结果是
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
A) 3 B) 3.2
C) 0 D) 3.07
18 下列程序执行后的输出结果是
(小数点后只写一位)
main()
{ double d; float f; ling l; int i;
i=f=1=d=20/3;
printf("%d %ld %f %f \n", i,l,f,d);
}
A) 6 6 6.0 6.0 B) 6 6 6.7 6.7
C) 6 6 6.0 6.7 D) 6 6 6.7 6.0
19 下列变量定义中合法的是
A) short _a=1-.le-1; B) double b=1+5e2.5;
C) long do=0xfdaL; D) float 2_and=1-e-3;
20 int x=1, y=1; 表达式(!x||y--)的值是
A) 0 B) 1
C) 2 D) -1

21. y=(x>0?1:x<0?-1:0);的功能相同的if语句是
A) if (x>0) y=1;
else if(x<0)y=-1;
else y=0;
B) if(x)
if(x>0)y=1;
else if(x<0)y=-1;
else y=0;
C) y=-1
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D) y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
22. 以下循环体的执行次数是
main()
{ int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);
}
A) 3 B) 2
C) 1 D) 0
23. 以下叙述正确的是
A) do-while语句构成的循环不能用其它语句构成的循环来代替
B) do-while语句构成的循环只能用break语句退出
C) do-while语句构成的循环,while后的表达式为非零时结束循环
D) do-while语句构成的循环,while后的表达式为零时结束循环
24. 下列程序执行后的输出结果是
main()
{ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }
A) G B) H
C) I D) J
25. 执行下面的程序段后,变量k
中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
A) 不定值 B) 33
C) 30 D) 10
26. 若已定义:
int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;
其中 0≤i≤9, 则对
a数组元素不正确的引用上
A} a[p-a] B} *(&a[i])
C} p[i] D} a[10]
27、下列程序执行后的输出结果是
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5];
a=0; b[0]=3;
func(&a,b); printf("%d \n,b[0]);
}
A) 6 B) 7
C) 8 D) 9
28、下列程序的运行结果是
#include <stdio.h>
main()
{ int a=2,c=5;
printf("a=%d,b=%d\n",a,c); }
A) a=%2,b=%5 B) a=2,b=5
C) a=d, b=d D) a=%d,b=%d
29、下列程序执行后的输出结果是
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=p; i<9; i++) p[i]=i+1;
printf("%d \n",a[1][2]);
}
A) 3 B) 6
C) 9 D) 随机数
30、设有数组定义: char array [ ]="China"; 则数组 array所占的空间为
A) 4个字节 B) 5个字节
C) 6个字节 D) 7个字节
31、下列程序的输出结果是
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d \n",res);
}
A) 4 B) 6
C) 8 D) 10
32、在以下四组中,每组有两个
分别运算的函数,运算结果
相同的是
main()
{ int i, j, m=0, n=0;
for(i=p; i<2; i++)
for(j=0; j<2; j++)
if(j>=i) m=1; n++;
printf("%d \n",n);
}
A) 4 B) 2
C) 2 D) 0
33、下列程序的输出结果是
struct abc
{ int a, b, c; };456什么意思网络流行语
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0],a+s[1],b;
printf("%d \n",t);
}
A) 5 B) 6
C) 7 D) 8
34、设 int b=2;表达式(b>>2)/(b>>1)的值是
A) 0 B) 2
C) 4 D) 8
35、在C程序中,可把整型数以二
进制形式存放到文件中的函
数是
A) fprintf函数 B) fread函数
C) fwrite函数 D) fputc函数
36、下列程序执行后的输出结果是
main()
{ char x=0xFFFF; printf("%d \n",x--); }
A) -32767 B) FFFE
C) -1 D) -32768
37、若有定义: float w;
int a, b;
则合法的switch语句是
A) switch(w)
{ case 1.0: printf("*\\n");
case 2.0: printf("**\\n");
}
B) switch(a);
{ case 1 printf("*\\n");
case 2 printf("**\\n");
}
C) switch(b)
{ case 1: printf("*\\n");
default: printf("\\n");
case 1+2: printf("**\\n");
}
D) switch(a+b);
{ case 1: printf("*\\n");
case 2: printf("**\\n");
default: printf("\\n");
}
38、以下程序段的执行结果是
int a, y;
a=10; y=0;
do
{ a+=2; y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
{ while(a=14);
A} a=12 y=12
a=14 y=16
a=16 y=20
a=18 y=24
B} a=12 y=12
a=16 y=28
C} a=12 y=12
D} a=12 y=12
a=14 y=26
a=14 y=44
39、若有以下调用语句,则不正确
fun函数的首部是
main()
{ …
int a[50],n;

fun(n, &a[9]);

}
A} void fun(int m, int x[]) B} void fun(int s, int h[41])
C} void fun(int p, int *s) D} void fun(int n, int a)
40、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)
A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bou
C) re'hi'you D) abre'hi'y\\bou
41、请选出正确的程序段
A) int *p;
scanf("%d",p);
B) int *s, k;
*s=100;
C) int *s, k;
char *p, c;
s=&k;
p=&c;
*p='a';
D) int *s, k;
char *p, e;
s=&k;
p=&c;
s=p;
*s=1;
42、已知指针p的指向如下图所示,则执行语句 *--p;*p的值是
A) 30 B) 20
C) 19 D) 29
43、设已有定义:char *st="how are you";下列程序段中正确的是
A) char a[11], *p; strcpy(p=a+1,&st[4]);
B) char a[11]; strcpy(++a, st);
C) char a[11];strcpy(a, st);
D) char a[], *p;strcpy(p=&a[1],st+2);
44、下列程序执行后的输出结果是
mai()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
}
A) you&ne B) you
C) me D) err
45、下列程序执行后的输出结果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0; func1(i); printf("\n");}
A) hello B) hel
C) hlo D) hlm
46、假定下列程序的可执行文件名为,则在该程序所在的子目录下输入命令行: prg hello good<回车>,程序的输出结果是
main()
int argc, char *argv[])
{int i;
if(argc<-0)return;
for(i=1;i<argc;i++)
printf("%c", *argv[i]);
}
A) hello good B) hg
C) hel D) hellogood
47、下列程序执行后的输出结果是
#define MA(x) x*(x-1)
main()
{ int a=1,b=2;
printf("%d \n",MA(1+a+b));}
A) 6 B) 8
C) 10 D) 12
48、变量a所占内存字节数是
union U
{ char st[4];
int i;
long l;
};
struct A
{ int c;
union U u;
}a;
A) 4 B) 5
C) 6 D) 8
49、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
main()
{char s[100];
int c, i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s \n",c,i,s);
}
A) 123,456,789 B) 1,456,789
C) 1,23,456,789 D) 1,23,456
50、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
main()
{char s[100];
int c, i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s \n",c,i,s);
}
A) 123,456,789 B) 1,456,789
C) 1,23,456,789 D) 1,23,456
答案:
ACCDD ACCDB
CDDBD ACAAB
ACDAA DABBC
BABDA CDBCC
CBABC BBCDD