自学考试《C语言程序设计》模拟试题四篇.docx
《自学考试《C语言程序设计》模拟试题四篇.docx》由会员分享,可在线阅读,更多相关《自学考试《C语言程序设计》模拟试题四篇.docx(10页珍藏版)》请在冰豆网上搜索。
![自学考试《C语言程序设计》模拟试题四篇.docx](https://file1.bdocx.com/fileroot1/2022-12/19/ef585ce3-7d43-418a-8a8d-a8be9eb4a2a4/ef585ce3-7d43-418a-8a8d-a8be9eb4a2a41.gif)
自学考试《C语言程序设计》模拟试题四篇
2018年自学考试《C语言程序设计》模拟试题【四篇】
导读:
本文2018年自学考试《C语言程序设计》模拟试题【四篇】,仅供参考,如果觉得很不错,欢迎点评和分享。
【第一篇】 一、选择题(
(1)-(40)题每小题1分,
(41)-(50)题每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)在32位计算机中,一个字长所占的字节数为______。
A)1B)2C)4D)8
(2)与十进制511等值的十六进制数为______。
A)1FFB)2FFC)1FED)2FE
(3)能将高级语言编写的源程序转换成目标程序的是______。
A)编辑程序B)编译程序C)解释程序D)链接程序
(4)在计算机系统中,存储一个汉字的国标码所需要的字节数为______。
A)1B)2C)3D)4
(5)下列带有通配符的文件名,能表示文件ABC.TXT的是______。
A)*BC.?
B)A?
.*C)?
BC.*D)?
.?
(6)在多媒体计算机系统中,不能用以存储多媒体信息的是______。
A)光缆B)软盘C)硬盘D)光盘
(7)DOS命令“COPY/?
”的功能是______。
A)将当前盘当前目录中的所有文件复制到当前盘的根目录下
B)将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下
C)以提示方式复制文件
D)显示COPY命令的帮助信息
(8)在Windows环境下,若要将当前活动窗口存入剪贴板,则可以按______。
A)Ctrl+PrintScreen键
B)Shift+PrintScreen键
C)PrintScreen键
D)Alt+PrintScreen键
(9)在Windows环境下,单击当前应用程序窗口的“关闭”按钮,其功能是______。
A)将当前应用程序转为后台运行
B)退出Windows后再关机
C)退出Windows后重新启动计算机
D)终止当前应用程序的运行
(10)在Windows环境下,粘贴快捷键是______。
A)Ctrl+ZB)Ctrl+XC)Ctrl+CD)Ctrl+V
(11)以下叙述中正确的是______。
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
(12)以下选项中合法的实型常数是______。
A)5E2.0B)E-3C).2E0D)1.3E
(13)以下选项中合法的用户标识符是______。
A)longB)_2TestC)3DmaxD)A.dat
(14)已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’101’是______。
A)字符AB)字符aC)字符eD)非法的常量
(15)以下非法的赋值语句是______。
A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;
(16)设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
A)6.500000B)6C)5.500000D)6.000000
(17)已知i、j、k为int型变量,若从键盘输入:
1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
A)scanf("%2d%2d%2d",&i,&j,&k);
B)scanf(""%d%d%d",&i,&j,&k);
C)scanf("%d,%d,%d",&i,&j,&k);
D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);
(18)与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是______。
A)3*x^n/(2*x-1)
B)3*x**n/(2*x-1)
C)3*pow(x,n)*(1/(2*x-1))
D)3*pow(n,x)/(2*x-1)
(19)设有定义:
longx=-123456L;,则以下能够正确输出变量x值的语句是______。
A)printf("x=%d",x);
B)printf("x=%ld",x);
C)printf("x=%8dL",x);
D)printf("x=%LD",x);
(20)若有以下程序:
main()
{intk=2,i=2,m;
m=(k+=i*=k);printf("%d,%d",m,i);
}
执行后的输出结果是______。
A)8,6B)8,3C)6,4D)7,4 【第二篇】 (21)已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是______。
A)6B)0C)2D)1
(22)有一函数
1x>0
y=0x=0
-1x 以下程序段中不能根据x的值正确计算出y的值的是______。
A)if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B)y=0;if(x>0)y=1;elseif(x C)y=0;if(x>=0)if(x>0)y=1;elsey=-1;
D)if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;
(23)以下选项中,与k=n++完全等价的表达式是_______。
A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1
(24)以下程序的功能是:
按顺序读入10名学生4门课程的成绩,
计算出每位学生的平均分并输出,程序如下:
main()
{intn,k;
floatscore,sum,ave;
sum=0.0;
for(n=1;n {for(k=1;k {scanf("%f",&score);sum+=score;}
ave=sum/4.0;
printf("NO%d:
%f",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句
出现在程序的位置不正确。
这条语句是______。
A)sum=0.0;
B)sum+=score;
C)ave=sum/4.0;
D)printf("NO%d:
%f",n,ave);
(25)有以下程序段
intn=0,p;
do{scanf("%d",&p);n++;}while(p!
=12345&&n 此处do-while循环的结束条件是______。
A)p的值不等于12345并且n的值小于3
B)p的值等于12345并且n的值大于等于3
C)p的值不等于12345或者n的值小于3
D)p的值等于12345或者n的值大于等于3
(26)有以下程序
main()
{inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;break;
case1:
m++;
switch(b%2)
{default:
m++;
case0:
m++;break;
}
}
printf("%d",m);
}
程序运行后的输出结果是______。
A)1B)2C)3D)4
(27)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是______。
A)voidB)intC)floatD)double
(28)若有说明:
intn=2,*p=&n,*q=p;,则以下非法的赋值语句是______。
A)p=q;B)*p=*q;C)n=*q;D)p=n;
(29)有以下程序
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f",fun((int)fun(a+c,b),a-c));
}
程序运行后的输出结果是______。
(30)有以下程序
voidfun(char*c,intd)
{*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}
main()
{chara=’A’,b=’a’;
fun(&b,a);printf("%c,%c",a,b);
}
程序运行后的输出结果是______。
A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A,b
(31)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;ifor(j=i+1;jif(a}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=0;i printf("");
}
程序运行后的输出结果是______。
A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,
D)1,2,10,9,8,7,6,5,4,3,
(32)有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=1;i printf("%d",j);
}
程序运行后的输出结果是______。
A)4B)3C)2D)1
(33)有以下程序
main()
{chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’’};inti,j;
i=sizeof(a);j=strlen(a);
printf("%d,%d",i,j);
}
程序运行后的输出结果是______。
A)9,9B)8,9C)1,8D)9,8
(34)以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i{t=a;a=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i printf("%d",s);
}
程序运行后的输出结果是______。
A)22B)10C)34D)30
(35)有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0;
for(i=0;i printf("%d",s);
}
程序运行后的输出结果是______。
A)11B)19C)13D)20
(36)有以下程序
#include
main()
{char*p="abcdefghjik";
printf("%d",strlen(p));
}
程序运行后的输出结果是______。
A)12B)15C)6D)5 (37)程序中头文件type1.h的内容是:
#defineN5
#defineM1N*3
程序如下:
#include"type1.h"
#defineM2N*2
main()
{inti;
i=M1+M2;printf("%d",i);
}
程序编译后运行的输出结果是______。
A)10B)20C)25D)30
(38)有以下程序
#include
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d",i);fprintf(fp,"%d",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d",k,n);
fclose(fp);
}
程序运行后的输出结果是_____。
A)2030B)2050C)3050D)3020
(39)以下叙述中错误的是______。
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)利用fread函数从二进制文件中读数据,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
(40)有以下程序
#include
main(intargc,char*argv[])
{inti,len=0;
for(i=1;iprintf("%d",len);
}
程序编译连接后生成的可执行文件是ex1.exe,
若运行时输入带参数的命令行是:
ex1abcdefg10
则运行的结果是______。
A)22B)17C)12D)9 【第三篇】 (41)有以下程序
intfa(intx)
{returnx*x;}
intfb(intx)
{returnx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;
i=f(fa,fb,2);printf("%d",i);
}
程序运行后的输出结果是______。
A)-4B)1C)4D)8
(42)有以下程序
inta=3;
main()
{ints=0;
{inta=5;s+=a++;}
s+=a++;printf("%d",s);
}
程序运行后的输出结果是_______。
A)8B)10C)7D)11
(43)有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-’a’+’A’;
s++;
}
}
main()
{charstr1[100]="abcddfefdbd",c=’d’;
ss(str1,c);printf("%s",str1);
}
程序运行后的输出结果是______。
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdbd
(44)有以下程序
structSTU
{charnum[10];floatscore[3];}
main()
{structSTUs[3]={{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90}},*p=s;
inti;floatsum=0;
for(i=0;i sum=sum+p->score;
printf("%6.2f",sum);
}
程序运行后的输出结果是______。
A)260.00B)270.00C)280.00D)285.00
(45)设有如下定义:
structsk
{inta;
floatb;
}data;
int*p;
若要使p指向data中的a域,正确的赋值语句是______。
A)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a
(46)有以下程序
#include
structNODE
{intnum;structNODE*next;}
main()
{structNODE*p,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d",p->num+q->next->num);
}
程序运行后的输出结果是______。
A)10B)20C)30D)40
(47)若有以下说明和定义
typedefint*INTEGER
INTEGERp,*q;
以下叙述正确的是______。
A)p是int型变量
B)p是基类型为int的指针变量
C)q是基类
型为int的指针变量
D)程序中可用INTEGER代替int类型名
(48)有以下程序
main()
{unsignedchara,b,c;
a=0x3;b=a|0x8;c=b printf("%d%d",b,c);
}
程序运行后的输出结果是______。
A)-1112B)-6-13C)1224D)1122
(49)有以下程序
#include
main()
{char*p,*q;
p=(char*)malloc(sizeof(char)*20);q=p;
scanf("%s%s",p,q);printf("%s%s",p,q);
}
若从键盘输入:
abcdef,则输出结果是______。
A)defdefB)abcdefC)abcdD)dd
(50)以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。
#include
voidf(charp[][10],intn)
{chart[20];inti,j;
for(i=0;ifor(j=i+1;jif(strcmp(p,p[j]) {strcpy(t,p);strcpy(p,p[j]);strcpy(p[j],t);}
}
main()
{charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"};inti;
f(p,5);printf("%d",strlen(p[0]));
}
程序运行后的输出结果是
A)6B)4C)5D)3 【第四篇】 二、填空题(每空2分,共40分)
请将每一个空的正确答案写在答案卡上,答在试卷上不得分。
(1)计算机软件分为系统软件和应用软件,操作系统属于【】。
(2)在DOS环境下,代表键盘和显示器的设备文件名为【】。
(3)支持Internet基本服务的协议是【】。
(4)从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【】。
(5)某微型机的运算速度为2MIPS,则该微型机每秒执行【】条指令。
(6)以下程序运行后的输出结果是【】。
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d,%d",x,y);
}
(7)以下程序运行后的输出结果是【】。
main()
{intx=15;
while(x>10&&x {x++;
if(x/3){x++;break;}
elsecontinue;
}
printf("%d",x);
}
(8)有以下程序:
#include
main()
{charc;
while((c=getchar())!
=’?
’)putchar(--c);
}
程序运行时,如果从键盘输入:
Y?
N?
,则输出结果为【】。
(9)以下程序运行后的输出结果是【】。
voidfun(intx,inty)
{x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);}
main()
{intx=2,y=3;
fun(x,y);
printf("%d,%d",x,y);
}
(10)以下函数的功能是计算s=1+1/2!
+1/3!
+……+1/n!
,请填空。
doublefun(intn)
{doubles=0.0,fac=1.0;inti;
for(i=1;i {fac=fac【】;
s=s+fac;
}
returns;
}
(11)下面程序的运行结果是:
【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d",i1,i2);
}
(12)下面程序的运行结果是:
【】。
voidswap(int*a,int*b)
{int*t;
t