C语言模拟试题Word格式文档下载.docx
- 文档编号:20842101
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:30
- 大小:30.11KB
C语言模拟试题Word格式文档下载.docx
《C语言模拟试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
11.设i=2,j=3,则表达式(i++)*(++j)的值为_____。
A.6B.8C.9D.12
12.关于以下程序段,说法正确的是_____。
x=-1;
do
{x=x*x;
}while(!
x);
A.死循环B.循环体执行二次C.循环体执行一次D.有语法错误
13.若有下列定义:
charc[5],*p=c;
则对c数组元素地址的正确引用是_____。
A.p+2B.&
c[5]C.c++D.&
c
14.当调用函数时,实参是一个数组名,则向函数传送的是_____。
A.数组的长度B.数组每个元素中的值
C.数组每一个元素的地址D.数组的首地址
15.文件中利用fopen函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确的是_____。
A.r+B.rbC.wbD.ab
二、填空题(5个小题,每题2分,共10分):
1.若有inti=1,j=7,a;
执行语句a=i+(j%4!
=0);
后,a的值是_______。
2.执行以下程序后,运行结果是_______。
#include<
stdio.h>
{inta,b;
for(a=1,b=1;
a<
=100;
a++)
{if(b>
=10)break;
if(b%3==1){b+=3;
continue;
}
}
printf(“%d\n”,a);
3.源程序中用到了strcat函数,需要包含的头文件(即库文件)为_______。
4.执行以下程序后,运行结果是_______。
{inta=2;
floatn=5.888,b;
b=a+(int)n;
printf(“%f\n”,b);
5.语句scanf("
a=%d,b=%d"
&
a,&
b);
若将3和4分别输入给a和b,则正确的输入方式为____<
CR>
。
三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分):
1.#include<
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
break;
case1:
b++;
case2:
printf(“a=%d,b=%d\n”,a,b);
2.在运行以下程序时,输入“TurboC++3.0”,写出程序的运行结果。
{charstr[40];
printf("
Inputastring:
"
);
scanf("
%s"
str);
puts(str);
3.#include<
voidf(inty)
{staticinti=5;
intj=3;
j++;
printf(“%d+%d+%d=%d\n”,i,j,y,i+j+y);
i*=2;
{intx;
for(x=1;
x<
=2;
++x)f(x);
4.#include<
voidswap(int*pa,int*pb)
{int*p;
p=pa;
pa=pb;
pb=p;
{inta=10,b=20;
int*p1=&
a,*p2=&
b;
if(a<
b)swap(p1,p2);
%d,%d\n"
a,b);
}
5.#include<
inta=5;
intb=7;
intplus(intx,inty)
{intz;
z=x+y;
return(z);
{inta=4,b=5,c;
c=plus(a,b);
printf(“a+b=%d\n”,c);
四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分):
1.输出九九表。
#include“stdio.h”
{inti,j;
for(i=1;
i<
=9;
i++)
{for(j=1;
①;
j++)
printf(“%3d*%d=%2d”,i,j,i*j);
②;
2.利用函数形式,求x数组所有元素的平均值并输出。
①;
{floatavg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3};
avg=average(x);
printf(“Theaverageis%5.2f\n”,avg);
floataverage(floata[10])
{inti;
floatsum=0;
for(i=0;
10;
i++)sum=sum+a[i];
3.编写一个计算字符串长度的函数length。
{charstr[20];
intm;
intlength(char*p);
\n"
gets(str);
\nthelengthofstris%d"
m);
intlength(char*p)
{intn=0;
while(②){n++;
p++;
returnn;
4.输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
{inti,n=10,a[10];
floatavg=0;
n;
scanf(“%d”,&
a[i]);
{if(①)printf(“\n”);
printf(“%d”,a[i]);
avg=avg/n;
printf(“average=%f\n”,avg);
5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符,利用指针完成。
{charstr[30]=“WelcometoCLanguage”,*cp=str;
while(*cp)
{if(*cp>
=‘A’&
&
*cp<
=‘Z’)
elseif(*cp>
=‘a’&
=‘z’)
*cp=*cp-32;
五、程序设计题(3个小题,共20分):
1.设三个整型变量a,b,c,编写程序为a,b,c输入数据,并要求a,b,c按由小到大排序后输出。
(5分)
2.学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。
3.编写排序函数sort(inta[]),实现对数组a中的元素进行排序,并利用该函数,从键盘输入若干个数(如10个)将其按升序排列。
(10分)
第二套试题
一、单项选择题(15个小题,每小题2分,共30分):
1.在一个源程序中,main函数的位置_____。
A.必须在最前面B.必须在系统调用的库函数的后面
C.没有具体要求D.必须在最后
2.正确的用户自定义标识符是_____。
A.a=2B.a+bC.nameD.default
3.以下叙述中正确的是_____。
A.break语句只能用于switch语句体中
B.continue语句的作用是:
使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
4.C语言中最简单的数据类型包括_____。
A.整型、实型、逻辑型B.整型、实型、字符型
C.整型、字符型、逻辑型D.字符型、实型、逻辑型
5.设ch是char型变量,其值为‘A’,且有表达式ch=(ch>
ch<
=‘Z’)?
(ch+32):
ch,该表达式的值为_____。
A.AB.aC.ZD.z
6.以下叙述正确的是_____。
A.用do-while语句构成的循环不能用其它语句构成的循环来代替
B.用do-while语句构成的循环只能用break语句退出
C.用do-while语句构成循环时,当while后的表达式成立时结束循环
D.用do-while语句构成循环时,当while后的表达式不成立时结束循环
7.为了判断两个字符串s1和s2是否相等,应当使用_____。
A.if(s1==s2)B.if(s1=s2)
C.if(strcmp(s1,s2))真D.if(strcmp(s1,s2)==0)假
8.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是_____。
A.k%2(k/2)B.k%2==1C.(k%2)!
=0D.!
k%2==1
9.下列是关于数组的叙述,不正确的是_____。
A.在定义数组时,数组名前的类型是指明数组各元素的类型
B.数组各元素的类型是相同的,而且是有序的
C.在引用数组元素时,数组元素的下标表达式必须是常量整型表达式
D.对整型数组来说,未初始化时,各数组元素的值是不确定的
10.有字符数组x[50],y[50],则正确的输出语句是_____。
A.printf(″%s″,″%s″,x,y);
B.puts(x);
puts(y);
C.putchar(x,y);
D.puts(x,y);
11.以下对一维数组a进行不正确初始化的是_____。
A.intx[5]={};
B.intx[5]=(0,0,0);
C.intx[]={0};
D.intx[5]={2*3};
12.下列叙述中错误的是_____。
A.主函数中定义的变量在整个程序中都是有效的
B.在其他函数中定义的变量,没有特殊声明在主函数中不能使用
C.形式参数也是局部变量
D.复合语句中定义的变量只在该复合语句中有效
13.设有函数原型、一维数组和变量定义如下:
函数原型voidfun(intx[],intn);
数组定义inta[4]={1,2,3,4};
floatb[4]={1.0,2.0,3.0,4.0};
变量定义intm=4,value;
下列函数调用中,正确的是_____。
(函数返回值?
)
A.fun(a,m);
B.value=fun(a[1],m);
C.value=fun(a,4);
D.fun(b,m);
14.以下对指针定义合法的语句是_____。
A.int*p=&
x=3;
B.inty[5]={1,2,3,4,5},*p=&
y;
C.charch[12]=″HelloWorld″,*c=ch;
D.char*c,c=‘x’,c=&
c;
15.以“只读”方式打开文本文件aa.dat,下列语句中哪一个是正确的_____。
A.fp=fopen(″aa.dat″,″r+″);
B.fp=fopen(″aa.dat″,″a″);
C.fp=fopen(″aa.dat″,″wb″);
D.fp=fopen(″aa.dat″,″r″);
二、填空题(15个小题,每空1分,共15分):
1.结构化程序设计的三种基本程序结构为顺序结构、选择结构和________。
2.条件“30≤x≤80且x≠50”的C语言表达式是________。
3.C语言源程序文件的后缀是________。
4.有如下定义:
intm=1,n=1,x=3;
则执行语句:
if(!
n)x+=1;
if(m)x-=2;
后,x的值是________。
5.执行如下语句:
inti=10;
{i=i+10;
}while(i>
20);
后,i的值是________。
6.若a、b、c和d都是int型变量,则执行表达式d=(a=2,b=4,c=a*b);
后,d的值为________。
7.在使用数组元素的过程中,C语言编译系统________(是/否)检查下标“越界”。
8.设m=4,n=7,表达式x=(m++)*(--n)的值是________。
9.执行如下语句:
intk;
k值不确定
for(k=0;
k=1;
k++);
则该循环执行的次数是________。
10.有如下定义:
intx[5]={1,3,5,7,9},*p=&
x[2];
则执行语句printf("
%d"
*p);
的输出结果是________。
11.有如下结构体定义:
structdate
{intyear;
intmonth;
intday;
};
structworklist
{charname[20];
charsex;
structdatebirthday;
}person;
若对结构体变量person的出生年份赋值为1990,则正确的赋值语句是________。
12.C语言提供的预处理命令有________、文件包含和条件编译三种。
13.设有数组定义:
charstring[]="
Student"
,则数组所占的存储空间为________个字节。
14.指针变量只能存放内存储单元的________。
15.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是________。
三、写出程序的运行结果(5个小题,每小题4分,共20分):
1.#include"
stdio.h"
{intx=1,y=0,a=0,b=0;
a++;
break;
b++;
b++;
printf(“a=%d,b=%d\n”,a,b);
2.#include"
voidf(intb[])
{inti;
for(i=2;
6;
b[i]*=2;
{inta[10]={1,2,3,4,5,6,7,8,9,10};
f(a);
for(i=0;
10;
printf(“%d”,a[i]);
3.#include"
inta=5,b=7;
{intz;
z=x+y;
return(z);
{inta=4,b=5,c;
c=plus(a+b);
a+b=%d\n"
c);
4.#include"
intd=1;
fun(intp)
{staticintd=5;
d+=p;
return(d);
{inta=3;
%d\n"
fun(a+fun(d)));
5.#include"
{charch[15]={“abcdefg”};
charc,*cp1,*cp2;
inti,n=0;
cp1=ch;
cp2=ch;
while(*cp2!
=‘\0’)
{n++;
cp2++;
cp2--;
n=n/2;
n;
{c=*cp1;
*cp1=*cp2;
*cp2=c;
cp1++;
cp2--;
puts(ch);
四、完善程序,在空白处填上相应的语句内容(5个小题,每小题4分,共20分)
1.输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
#include"
{inti,n=10,a[10];
floatavg=0;
a[i]);
{if(i%3==0)
(1)
i++)avg+=a[i];
(2)
printf(“average=%f\n”,avg);
2.利用选择排序法使数组中的数按照从大到小的次序(升序)排列。
#defineN10
{inta[N]={3,8,5,2,10,9,4,1,7,6},i,j,r,temp;
N-1;
{
(1)
for(j=i+1;
j<
N;
if(
(2))r=j;
if(r!
=i)
{temp=a[r];
a[r]=a[i];
a[i]=temp;
thearrayaftersort:
);
%5d"
a[i]);
3.输出九九乘法表。
{inti,j;
for(i=1;
=9;
{for(
(1))
%3d*%d=%-3d"
(2));
4.通过调用子函数average,分别求出主函数main中x和y数组的平均值并输出。
floataverage(
(1))
floatsum=0;
i++)sum=sum+a[i];
{floatx[10]={1,2,3,4,5,6,7,8,9,10};
floaty[5]={1.5,2.5,3.5,4.5,5.5};
floatavg;
avg=average(x,10);
Thearrayxaverageis%5.2f\n"
avg);
avg=average(y,5);
Thearrayyaverageis%5.2f\n"
5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符。
{charstr[30]=“Iamastring”,*cp;
(1)
*cp=*cp+32;
elseif(*cp1>
*cp=*cp-32;
else
*cp=*cp;
puts(str);
五、程序设计题(2个小题,共15分):
1.求1!
-2!
+3!
-4!
+…-10!
(7分)
2.编写一个计算字符串长度的函数,模拟C的“string.h”函数库内的计算字符串长度的函数strlen()。
(8分)
第三套试题
一、选择题(15个小题,每小题2分,共30分):
1、C语言编译程序是____。
A.C程序的机器语言版本B.一组机器语言指令
C.将C源程序编译成目标程序的程序D.由制造厂家提供的一套应用软件
2、在一个C语言的源程序中,()。
A.必须有一个主函数B.可以有多个主函数
C.必须有主函数和其它函数D.可以没有主函数
3、以下选项中不合法的用户标识符是____。
A.ABCB.abcC.a_bcD.ab.c
4、C语言中运算对象必须是整型的运算符是____。
A.%B./C.!
D.*
5、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是____。
A.read(a,b,c);
B.scanf("
%d,%d,%d"
b,&
c);
C.scanf("
%d%d%d"
a&
b&
D.scanf("
a,b,c);
6、为表示关系x≥y≥z,应使用C语言表达式____。
A.(x>
=y)&
(y>
=z)B.(x>
=y)AND(y>
=z)
C.x>
=y>
=zD.(x>
=z
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟 试题