- 相关推荐
计算机考试C语言笔试试题附答案
吹嘘自己有知识的人,等于在宣扬自己的无知。以下是小编为大家搜索整理计算机考试C语言笔试试题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!
一、选择题(1-30每小题1分,31-45每小题2分,共60分)
下列各题 A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。答在试卷上不得分。
(1) 二进制数101110转换为等值的八进制数是 ( ) 。
A.45
B.56
C.67
D.78
(2) CPU是由( )组成的。
A.内存储器和控制器
B.控制器和运算器
C.内存储器和运算器
D.内存储器、控制器和运算器
(3) DOS是为IBM PC系列微型计算机及其兼容机所配置的 ( ) 磁盘操作系统。
A.多用户多任务
B.单用户单任务
C.分时
D.分布式
(4) 启动MS-DOS操作系统后, ( ) 已驻留内存。
A.COMMAND.COM
B.DISKCOPY.COM
C.FORMAT.COM
D.CCCC.EXE
(5) 设驱动器B中软盘上的目录结构如下图所示。
设当前目录为F2,则把A盘根目录下的PROG.BAS文件复制到B盘F3子目录中的命令是 ( ) 。
A.COPY PROG.BAS B:
B.COPY A:PROG.BAS B:\
C.COPY A:\PROG.BAS B:\F3
D.COPY A:PROG.BAS B:\F3\
(6) 下面四组DOS命令中,意义完全相同的一组是 ( ) 。
A.COPY和DISKCOPY
B.COMP和DISKCOMP
C.DEL和RD
D.RENAME和REN
(7) 防止软盘感染病毒的有效方法是 ( ) 。
A.不要把软盘和有毒软盘放在一起
B.在写保护缺口上贴上胶条
C.保持机房清洁
D.定期对软盘格式化
(8) 双面高密度5英寸软磁盘的容量是 ( ) 。
A.360KB
B.720KB
C.1.2MB
D.1.44MB
(9) 在FOXBASE中,可以使用的两类变量是 ( ) 。
A.内存变量和字段变量
B.全局变量和局部变量
C.字段变量和简单变量
D.内存变量和自动变量
(10) 建立一个新子目录的DOS命令是 ( ) 。
A.CREATE
B.RD
C.MD
D.CD
(11) 在C语言中,如果下面的变量都是int类型,则输出的结果是 ( ) 。
sum=pad=5; pAd=sum + + ,pAd + + , + + pAd;
printf("%d\n",pad);
A.7
B.6
C.5
D.4
(12) 以下程序的输出结果是 ( ) 。
# include
main()
{ int i=010 , j = 10;
printf("%d,%d\n",+ +i , j - -); }
A.11,10
B.9,10
C.010,9
D.10,9
(13) 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 ( ) 。
# include
main()
{ char c1=’A’, c2=’Y’;
printf("%d,%d\n",c1,c2); }
A.因输出格式不合法,输出错误信息
B.65,90
C.A,Y
D.65,89
(14) 指针s所指字符串的长度为 ( ) 。
char *s="\\"Name\\Address\n";
A.19
B.15
C.18
D.说明不合法
(15) 设有说明int(*ptr)[m];其中的标识符ptr是 ( ) 。
A.M个指向整型变量的指针
B.指向M个整型变量的函数指针
C.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量
(16) 语句while(!E);中的条件!E等价于 ( ) 。
A.E = = 0
B.E!=1
C.E!=0
D.~E
(17) 以下程序的输出结果是 ( ) 。
# include
main()
{ printf("%d\n",NULL); }
A.不确定的(因变量无定义)
B.0
C.-1
D.1
(18) 以下函数调用语句中含有 ( ) 个实参。
func((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
(19) 设有以下语句:
char a=3,b=6,c;
c=a^b<<2;
则c的二进制值是 ( ) 。
A.00011011
B.00010100
C.00011100
D.00011000
(20) 下面的程序中 ( ) 有错误(每行程序前面的数字是行号)。
1 #include
2 main()
3 {
4 float a[3]={0,0};
5 int i;
6 for(i=0;i<3;i + + ) scanf("%d",&a[i]);
7 for(i=1;i<3;i + + ) a[0]=a[0]+a[i];
8 printf("%f\n",a[0]);
9 }
A.没有
B.第4行
C.第6行
D.第8行
(21) 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是 ( ) 。
A.3
B.0
C.9
D.-12
(22) 以下的for循环 ( ) 。
for(x=0,y=0; (y!=123)&&(x<4); x + + );
A.是无限循环
B.循环次数不定
C.执行4次
D.执行3次
(23) 设有语句char a=’\72’;则变量a ( ) 。
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法
(24) 以下程序的输出结果是 ( ) 。
# include
# include
main()
{ int a=1,b=4,c=2;
float x=10..5 , y=4.0 , z;
z=(a+
B./c+sqrt((double)y)*1.2/c+x;
pritnf("%f\n",z); }
A.14.000000
B.015.400000
C.13.700000
D.14.900000
(25) sizeof(double)是 ( ) 。
A.一种函数调用
B.一个双精度型表达式
C.一个整型表达式
D.一个不合法的表达式
(26) C语言中 ( ) 。
A.不能使用do-while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出
C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环
(27) 以下程序的输出结果是 ( ) 。
# include
# include
main()
{ char str[12]={’s’,’t’,’r’,’i’,’n’,’g’};
printf("%d\n",strlen(str)); }
A.6
B.7
C.11
D.12
(28) 以下程序的输出结果是 ( ) 。
# include
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) 以下程序的输出结果是 ( ) 。
# include
main()
{ int a ,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,
B.; }
A.6,1
B.2,1
C.6,0
D.2,0
(30) 以下程序的输出结果是 ( ) 。
# include
main()
{ int i;
for ( i=1;i<=5;i + + ) {if ( i%2 ) printf("*");
else continue; printf("#");}
printf("$\n"); }
A.*#*#*#$
B.#*#*#*$
C.*#*#$
D.#*#*$
(31) 以下for语句构成的循环执行了 ( ) 次。
# include
# define N 2
# define M N+1
# define NUM (M+1)*M/2
main()
{ int i , n=0;
for ( i=1;i<=NUM;i + + );
{n + + ; printf("%d",n); }
printf("\n"); }
A.5
B.6
C.8
D.9
(32) 设有以下语句,则 ( ) 不是对a数组元素的正确引用,其中0≤i<10。
int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;
A.a[p-a]
B.*(&a[i])
C.p[i]
D.*(*(a+i))
(33) 有以下程序:
# include
# define N 6
main()
{ char c[N]; int i=0;
for ( ;i for ( i=0 ; i 输入以下三行,每行输入都是在第一列上 开始,代表一个回车符:
a
b
cdef
程序的输出结果是 ( ) 。
A.abcdef
B.a
C.a
D.a
b b b
c cd cdef
d
e
f
(34) 以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。
# include
findmax ( s , t , k )
int *s , t , *k;
{ int p; for(p=0,*k=p;p if ( s[p] > s[*k] )( ); }
main()
{ int a[10] , i , k ;
for ( i=0 ; i<10 ; i + + ) scanf("%d",&a[i]);
findmax ( a,10,&k );
printf ( "%d,%d\n" , k , a[k] ); }
A.k=p
B.*k=p-s
C.k=p-s
D.*k=p
(35) 有以下程序:
#include
union pw
{ int i; char ch[2]; } a;
main()
{ a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); }
程序的输出结果是 ( ) 。(注意: ch[0]在低字节,ch[1]在高字节。)
A.13
B.14
C.208
D.209
(36) 有以下程序:
# include
main()
{ int c;
while((c=getchar())!=’\n’)
{ switch(c-’2’)
{ case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
case 4: putchar(c+2);break; } }
printf("\n"); }
从第一列开始输入以下数据,代表一个回车符。
2743
程序的输出结果是 ( ) 。
A.668977
B.668966
C.6677877
D.6688766
(37) 以下程序的输出结果为 ( ) 。
main()
{ char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};
char **p; int i;
p=alpha;
for(i=0;i<4;i + + ) printf("%s",p[i]); printf("\n"); }
A.ABCDEFGHIJKL
B.ABCD
C.ABCDEFGHIJKLMNOP
D.AEIM
(38) 以下程序的输出结果是 ( ) 。
# include
# define FUDGE(y) 2.84+y
# define PR(
A.printf("%d",(int)(
A.)
# define PRINT1(
A.PR(
A.;putchar(’\n’)
main()
{int x=2; PRINT1(FUDGE(5)*x); }
A.11
B.12
C.13
D.15
(39) 以下程序的输出结果是 ( ) 。
# include
main()
{ int i=1,j=3;
printf("%d",i + + );
{ int i=0; i+=j*2; printf("%d,%d",i,j); }
printf("%d,%d\n",i,j); }
A.1,6,3,1,3
B.1,6,3,2,3
C.1,6,3,6,3
D.1,7,3,2,3
(40) 以下程序的输出结果是 ( ) 。
# include
main()
{ int k=4,m=1,p;
p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}
func(a,
B.
int a,b;
{ static int m=0,i=2;
i+=m+1; m=i+a+b; return(m); }
A.8,17
B.8,16
C.8,20
D.8,8
(41) 设有以下语句:
char str[4][12]={"aaa","bbbb","ccccc","dddddd"},
*strp[4];
int i;
for(i=0;i<4;i + + )strp[i]=str[i];
( )不是对字符串的正确引用,其中0≤k<4。
A.strp
B.str[k]
C.strp[k]
D.*strp
(42) 设有以下语句:
char str1[]="string",str2[8],*str3,*str4="string";
则 ( ) 不是对库函数strcpy的正确调用,此库函数用业复制字符串。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
(43) C语言中形参的缺省存储类别是 ( ) 。
A.自动(auto)
B.静态(statiC)
C.寄存器(register)
D.外部(extern)
(44) 设有以下语句:
struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,’\0’},*p;
p=&a[0];
则表达式 ( ) 的值是6。
A.p + + ->n
B.p->n + +
C.(*p).n + +
D.+ + p->n
(45) 以下四个程序中, ( ) 不能对两个整型变量的值进行交换。
A.# include
main()
{ int a=10,b=20; swap(&a,&
B.;
printf("%d %d\n",a,
B.;
}
swap(p,q)
int *p,*q;
{
int *t;
t=(int )malloc(sizeof(int));
t=p;*p=*q;*q=*t; }
B.# include
main()
{
int a=10,b=20;
swap(&a,&
B.;
printf("%d %d\n",a,
B.;
}
swap(p,q)
int p,q;
{
int *t;
t=*p;*p=*q;*q=t;
}
C.# include
main()
{
int *a,*b;
*a=10,*b=20;
swap(a,
B.;
printf("%d %d\n",*a,*
B.;
}
swap(p,q)
int *p,*q;
{
int t;
t=*p;*p=*q;*q=t;
}
D.# include
main()
{
int a=10,b=20;
int x=&a,y=&b;
swap(x,y);
printf("%d %d\n",a,
B.;
}
swap(p,q)
int *p,*q;
{
int t;
t=*p;*p=*q;*q=t;
}
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡1-20序号后的横线上,答在试卷上不得分。
(1) 结构化程序设计所规定的三种基本控制结构是 【1】 结构.选择结构和循环结构。
(2) 在七位ASCII码中,除了表示数字、英文大小写字母外,还有 【2】 个其它符号。
(3) 把B盘BAS子目录下第三个字符为A,且没有扩展名的全部文件拷贝到C盘ABC子目录下的命令是 【3】 。
(4) 微机中ROM的中文意义是 【4】 存储器。
(5) 启动MS-DOS系统后,能自动执行的批处理文件是 【5】 .BAT。
(6) 设当前盘为C盘,删除B盘FOX子目录中扩展名为.TXT的所有文件的命令是 【6】 。
(7) 十进制数53转换为十六进制数为 【7】 。
(8) 数据库管理系统常见的数据模型有层次、网状和 【8】 三种。
(9) 买来一张新盘后,在存入文件前,必须进行 【9】 处理。
(10) 在微机中,字符的比较就是对它们的 【10】 码进行比较。
(11) 以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。
#include
main(argc,argv)
int argc; char *argv[];
{ FILE *f1,*f2; char ch;
if(argc< 【11】 )
{ printf("Parameters missing!\n"); exit(0); }
if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL))
{ printf("Can not open file!\n"); exit(0);}
while( 【12】 )fputc(fgetc(f1),f2);
fclose(f1); fclose(f2); }
(12) 以下程序中的trap函数是一个用梯形法求定积分的通用函数。梯形法求定积分的公式为:
n-1 a-b
s=((f(a)+f(b))/2+∑ f(a+i*h))*h , h=|----|
i=1 n
其中,n为积分小区间数。以下程序调用trap函数求定积分,被积函数是:
f(x)=x*x+3*x+2,且n=1000,a=0,b=4。
#include
3include
double trap(fun,a,b)
double (*fun)(),a,b;
{ double t,h;
int i,n=1000;
t=0.5*((*fun)(a)+(*fun)(b)); h=fabs(a-b)/(double)(n);
for(i=1;i<=n-1;i + + ) t=t+ 【13】 ;
t=t*h; return(t); }
double mypoly(x)
double x;
{ return(x*x+3.0*x+2.0); }
main()
{ double y,(*pf)(); pf= 【14】 ;
y=trap(pf,0.0,4.0); printf("%f\n",y); }
(13) 以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。
#include
main()
{ int i,a[10],*p=a,sum=0;
printf("Enter 10 num:\n");
for(i=0;i<10;i + + ) scanf("%d",&a[i]);
for(i=0;i<10;i + + )
if(isprime(*(p+ 【15】 )) = = 1){ printf("%d",*(a+i)); sum+=*(a+i); }
printf("\nThe sum=%d\n",sum); }
isprime(x)
int x;
{ int i; for(i=2;i<=x/2;i + + )
if(x%i = = 0) return (0); 【16】 ; }
(14) 以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。
#include
#define N 10
invert(s,i,j)
int *s,i,j;
{ int t; if(i main()
{ int a[N],i;
for(i=0;i invert(a,0,N-1);
for(i=0;i printf("\n"); }
(15) 以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data 域不放数据,表空的条件是ph->next = = NULL).
#include
struct list { int data;struct list *next;};
【19】 creatlist()
{ struct list *p,*q,*ph; int a;
ph=(struct list *) malloc(sizeof(struct list));
p=q=ph; printf("Input an integer number,enter –1 to end:\n");
scanf("%d",&a):
while(a!=-1)
{ p=(struct list *)malloc(sizeof(struct list));
p->data=a; q->next=p; 【20】 =p; scanf("%d",&a); }
p->next=’\0’; return(ph); }
main()
{ struct list *head; head=creatlist();}
参考答案
选择题([1]——[30]每个选项1分,[31]——[45]每个选项2分,共60分)
(1)B (2)B (3)B (4)A (5)C (6)D (7)B (8)C (9)A (10)C
(11)C (12)B (13)D (14)B (15)C (16)A (17)B (18)B (19)A (20)C
(21)D (22)C (23)A (24)C (25)C (26)D (27)A (28)D (29)B (30)A
(31)C (32)D (33)C (34)D (35)A (36)A (37)C (38)B (39)B (40)A
(41)A (42)C (43)A (44)D (45)C
二` 填空题(每空2分,共40分)
(1)顺序
(2)66
(3) COPY B:\BAS\??A*.C:\ABC(或COPY B:\BAS\??A*.,C:\ABC)
(4)只读
(5)AUTOEXEC
(6)DEL B:\FOX\*.TXT
(7)35
(8)关系
(9)格式化(或初始化、FORMAT)
(10)ASCII
(11)3
(12)!feof(f1)或feof(f1)==0
(13)(*fun)(a+i*h)
(14) mypoly
(15)I
(16)return 1 或 return (1)
(17)i+1
(18) I
(19) struct list *
(20) q
【计算机考试C语言笔试试题附答案】相关文章:
C语言笔试试题及答案08-03
C语言考试试题及答案06-12
标准c语言笔试题09-07
C语言试题及答案07-26
2015年计算机二级考试C语言模拟试题(四)附答案10-11
c语言常见笔试题总结10-28
C语言笔试题100道08-14
2024年C语言考试题及答案09-20
C语言模拟试题及答案09-19
2017计算机二级C语言基础测试题附答案10-19