C语言程序设计模拟试题一0套.docx
《C语言程序设计模拟试题一0套.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题一0套.docx(73页珍藏版)》请在冰豆网上搜索。
C语言程序设计模拟试题一0套
C语言程序设计模拟试题
(一)
一、填空题(每空2分,总计20分)
1.假定p所指对象的值为25,p+1所指对象的值为46,则执行"(*p)++;"语句后,p所指对象的值为___________。
2.如果变量定义有:
inta=9,c=8;则表达式(――a!
=c++)?
――a:
++c的值为________。
3.假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为__________。
4.已有inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x;则对应scanf("%d,%d,%d",&i,&j,&f)调用语句的数据输入形式是__________。
5.若x=5,y=10,则x>y和x<=y的逻辑值分别为________和_______。
6.C语言提供三种逻辑运算符,按优先级高低它们分别是_________,________,_________。
7.空字符串的长度是__________。
二、选择题(10题,每题2分,总计20分)
1.若a,b均为int型变量,x,y均为float型变量,正确的输入函数调用是()
A.scanf(“%d%f”,&a,&b);B.scanf(“%d%f”,&a,&x);
C.scanf(“%d%d”,a,b);D.scanf(“%f%f”,x,y);
2.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()
A.x=y==5;B.x=n%2.5;
C.x+n=i;D.x=5=4+1;
3.C语言对嵌套if语句的规定是:
else总是与()配对。
A.其之前最近的ifB.第一个if
C.缩进位置相同的ifD.其之前最近且不带else的if
4.有以下程序:
#include
voidmain()
{inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf(“%d,%d,%d,%d\n”,a,b,c,d);
}
其输出结果是()
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错
5.下面程序的输出结果是()
#include
voidmain()
{intk=0,m=0,i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)k++;k=k-j;}
m=i+j;
printf(“k=%d,m=%d”,k,m);
}
A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=5
6.按C语言的规定,以下不正确的说法是()
A.实参可以是常量、变量或表达式
B.形参可以是常量、变量或表达式
C.实参可以为任意类型
D.形参应与其对应的实参类型一致
7.在C语言中,引用数据元素时,其数组下标的数据类型允许为()
A.整型变量B.整型表达式
C.整型变量或整型表达式D.任何类型的表达式
8.若有说明:
inta[3][4];,则对a数组元素的正确引用是()
A.a[2][4]B.a[1,3]C.a[1+1][0]D.a
(2)
(1)
9.变量的指针,其含义是指该变量的()
A.值B.地址C.名D.一个标志
10.若有以下说明和语句:
structworker
{intno;
char*name;
}work,*p=&work;
则以下引用方式不正确的是()
A.work.noB.(*p).noC.p->noD.work->no
三、程序阅读题,写出程序结果(每题4分,共20分)
1.有以下程序:
#include
voidmain()
{charc1,c2;
inta,b;
scanf("%c,%c",&c1,&c2);
a=c1+32;
b=c2-2;
printf("%c,%c\n",a,b);
printf("%d,%d\n",c1,c2);
}
程序运行时,若从键盘输入(第1列开始)
A,d<回车>
则输出结果是
2.有以下程序:
#include
voidmain()
{inti,sum;
i=5;sum=109;
while(i)
{sum=sum-i;i=i-2;
if(i<=1)break;
}
printf("i=%d,sum=%d\n",i,sum);
}
程序运行后输出结果是
3.有以下程序:
#include
intmain()
{inti,j,n=4;
for(i=1;i<=n;i++)
{for(j=1;j
printf(“”);//双引号内为一个空格字符
for(j=1;j<=9-2*i;j++)
printf(“*”);
printf(“\n”);
}
}
程序运行后输出结果是:
4.有以下程序:
#include"stdio.h"
#defineN4
intfun(inti)
{staticinta=1;
a=a*i;
returna;
}
main()
{inti,j;
for(i=1;i<=N;i++)
{j=fun(i);
printf("%d\n",j);
}
}
程序运行后输出结果是:
5.有以下程序:
#include"stdio.h"
#defineN4
intfun(intb[][4])
{inti,j;
intm[4]={0,0,0,0},*p=m;
for(j=0;jfor(i=0;i*(p+j)+=b[i][j];
for(i=0;iprintf("%d\n",*(p+i));
}
main()
{inti,j,k=0;
inta[4][4];
for(i=0;ifor(j=0;j<4;j++)
a[i][j]=k++;
fun(a);
}
程序运行后输出结果是:
四、程序填空题(每题4分,共20分)
1.有以下程序,功能是求出a,b,c三个数的最大值。
#include
voidmain()
{
inta,b,c,max;
max=a;
if(________)max=b;
if(________)max=c;
printf(“最大值=%d\n”,max);
}
2.任意输入一个数m,判断是否是素数
main()
{
intm,i,k;
____________;
k=sqrt(m+1);
for(i=2;iif(m%i==0)break;
if_____________printf(“%disaprimenumber\n”,m);
elseprintf(“%disnotaprimenumber\n”,m);
}
3.有以下程序,功能是输入数组中10个元素,并求和。
#include
main()
{
floatA[10],sum=0;
for(i=0;i<10;i++)
{
scanf(“%f”,__________);
sum+=A[i];
}
printf(“sum=________”,sum);
}
4.输入10个浮点数,计算并输出相应的函数值。
x*x+2x+1x<0
y=0x=0
3x>0
#include
main()
{floatx,y;
scanf(“%f”,&x);
{if(x<0);
else;
elsey=3;
printf(“%f\n”,y);
}
5.函数sort使用冒泡法将一维数组中各元素按值从大到小排序。
voidsort(inta[],intn)
{intk,j,t;
for(k=1;kfor(;jif(){t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
五、程序设计题(每题10分,共20分)
1.输入一个整数,判断它能否同时被3,5,7整除,如是则输出YES,否则输出NO。
2.编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出nofound.。
C语言程序设计模拟试题
(二)
一、填空题(每空2分,总计20分)
1.为表示关系:
x≤y≤z,应使用的C语言表达式是_____________。
2.字符串是以__________为结束标志的一维字符数组。
有定义:
chara[]="";则a数组的长度是____________。
3.设inta;floatf;doublei;则表达式10+'a'+i*f值的数据类型是___________。
4.设有说明语句"inta[3][4]={{1,2},{3,4,5},{6,7,8}};"则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。
5.假定p所指对象的值为25,p+1所指对象的值为46,则执行"(*p)++;"语句后,p所指对象的值为___________。
6.文件使用方式“r”表示________,“w+”表示________。
7.有函数调用fun1(x+y,(y,z),10,fun((x,y―1)));函数fun1有_______个参数。
二、选择题(10题,每题2分,总计20分)
1.若x,y均为double型变量,正确的输入函数调用是()
A.scanf(“%f%f”,&x,&y);B.scanf(“%d%d”,&x,&y);
C.scanf(“%lf%lf”,&x,&y);D.scanf(“%lf%lf”,x,y);
2.若x,y,z均为int型变量,则执行以下语句后的输出为()
x=(y=(z=10)+5)-5;
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
y=(z=x=0,x+10);
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
A.x=10,y=15,z=10B.x=10,y=10,z=10
x=0,y=10,z=0x=0,y=10,z=0
C.x=10,y=15,z=10D.x=10,y=10,z=10
x=10,y=10,z=0x=0,y=10,z=0
3.判断char型变量c1是否为小字字母的正确表达式为()
A.’a’<=c1<=’z’B.(c1>=a)&&(c1<=z)
C.(‘a’<=c1)||(‘z’>=c1)D.(c1>=’a’)&&(c1<=’z’)
4.若有说明语句:
intw=1,x=2,y=3,z=4;则表达式w>x?
w:
z>y?
z:
x的值是()
A.4B.3C.2D.1
5.以下程序执行后的输出结果是()
#include
voidmain()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;
}
i+=11;
a+=i;
}
printf(“%d”,a);
}
A.21B.32C.33D.11
6.以下正确的函数定义形式是()
A.doublefun(intx,inty)B.doublefun(intx;inty)
C.doublefun(intx,y)D.doublefun(intx,y;)
7.以下对一维数组a中的所有元素进行正确初始化的是()
A.inta[10]=(0,0,0,0);B.inta[10]={};
C.inta[]=(0);D.inta[10]={10*2};
8.以下关于数组的描述正确的是()
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
9.若有定义inta=5;int*p1,*p2;,且p1和p2均已指向变量a,下面不能正确执行的赋值语句是()。
A.a=*p1+*p2;B.p2=a;C.p1=p2;D.a=*p1*(*p2);
10.正确的k值是()
enum{a,b=5,c,d=4,e}k;
k=a;
A.0B.1C.4D.6
三、程序阅读题,写出程序结果(每题4分,共20分)
1.有以下程序:
#include
voidmain()
{charc1,c2,c3,c4,c5,c6;
scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf(“\n%c%c\n”,c5,c6);
}
程序运行时,若从键盘输入(第1列开始)
abc<回车>
45678〈回车〉
则输出结果是
2.有以下程序:
#include
voidmain()
{inti,sum;
i=10;sum=0;
for(;;)
{sum=sum+i;i=i+10;
if(i>=50)break;
}
printf("i=%d,sum=%d\n",i,sum);
}
程序运行后输出结果是
3.有以下程序:
#include
#defineWIDTH4
main()
{
inti,j;
for(i=0;i<=WIDTH;i++)
{for(j=1;j<=i;j++)
printf("");
for(j=i;j<=WIDTH-1;j++)
printf("*");
printf("\n");
}
}
程序运行后输出结果是:
4.有以下程序:
#include"stdio.h"
intfunc(intx,inty)
{intz;
z=x+y;
returnz++;
}
main()
{inti=3,j=2,k=1;
do
{k+=func(i,j);
printf("%d\n",k);
i++;
j++;
}while(i<=6);
}
程序运行后输出结果是:
5.有以下程序:
#include"stdio.h"
#defineN4
intfun(int*m)
{int*n;
n=m+3;
return*n;
}
main()
{inti,j;
inta[10]={0,1,2,3,4,5,6,7,8,9};
int*p=a;
for(i=1;i<=N;i++)
{j=fun(p);p++;
printf("%d\n",j);
}
}
程序运行后输出结果是:
四、程序填空题(每题4分,共20分)
1.有以下程序,功能是交换a,b的值。
#include
voidmain()
{
inta,b,t;
a=10;b=20;
printf(“a=%d,b=%d\n”,a,b);
________;
a=b;
________;
printf(“a=%d,b=%d\n”,a,b);
}
2.任意输入一个年数,判断该年是否是润年。
main()
{
intyear,yn;
____________;
if(year%4==0&&year%100!
=0||year%400==0)yn=1;
else__________;
if(yn==0)printf(“%d不是润年\n”,year);
elseprintf(“%d是润年\n”,year);
}
3.有以下程序,功能是输入二个数组,输出相对应位置元素的积。
#include
main()
{
intA[5],B[5],s;
for(i=0;i<5;i++)
{
scanf(“%d%d”,__________);
s=A[i]*B[i];
printf(“%d\t”,______);
}
}
4.输入10个浮点数,计算并输出相应的函数值。
x*x-2x+1x<0
y=0x=0
3*x+1x>0
#include
main()
{floatx,y;
scanf(“%f”,&x);
{if(x<0);
else;
elsey=0;
printf(“%f\n”,y);
}
5.函数DEL是把字符串a中的非大写字母赋值给b。
voidDEL(chara[])
{char*b;
inti=0,j=0;
While(a[i]!
=’\0’)
{if(_______________)b[j++]=a[i];
i++;
}
_________;/*字符串b结束*/
}
五、程序设计题(每题10分,共20分)
1.编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3时显示b*c之积,a为4时显示b/c之商,a为其他数值时不做任何操作的程序。
2.若有说明:
inta[2][3]={{1,2,3},{4,5,6}};,现要将a的行和列的元素互换后存到另一个二维数组b中,试编程。
C语言程序设计模拟试题(三)
一、填空题(每空2分,总计20分)
1.若有定义:
doublex[3][5],则x数组中行下标的下限为_________,列下标的下限为__________。
2.设有说明语句"inta[3][4]={{1,2},{3,4,5},{6,7,8}};"则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。
3.表达式7/2的结果是____________。
表达式7%2的结果是____________。
4.若已知a=1.5,b=15,c=1,则表达式a*b&&c的运算结果是____________。
5.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为______________。
6.定义inta[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是____________。
7.已有inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x;则对应scanf("%d,%d,%d",&i,&j,&f)调用语句的数据输入形式是__________。
二、选择题(10题,每题2分,总计20分)
1.若x为char型变量,y为int型变量,x,y均为有值,正确的输出函数调用是()
A.printf(“%c%d”,x,y);B.printf(“%c%s”,x,y);
C.printf(“%f%c”,x,y);D.printf(“%f%d”,x,y);
2.若x是int型变量,y是float型变量,所用的scanf调用语句格式为:
scanf(“x=%d,y=%f”,&x,&y);,则为了将数据10和66.6分别赋给x和y,正确的输入应当是()
A.x=10,y=66.6<回车>B.1066.6<回车>
C.10<回车>66.6<回车>D.x=10<回车>y=66.6<回车>
3.以下的if语句中,不正确的是()
A.if(x>y);B.if(x==y)x+=y;
C.if(x!
=y)scanf(“%d”,&x)elsescanf(“%d”,&y)D.if(x4.以下关于switch语句和break语句的描述中,正确的是()
A.在switch语句中必须使用break语句
B.break语句只能用于switch语句中
C.在switch语句中,可根据需要用或不用break语句
D.break语句是switch语句的一部分
5.对下面两个循环语句,下面的叙述正确的是()
while
(1);
for(;;);
A.
都是无限循环B.
是无限循环,
错误
C.
循环一次,
错误D.
皆错误
6.在一个源文件中定义的全局变量的作用域为()
A.本文件的全部范围B.本程序的全部范围
C.本函数的全部范围D.从定义该变量的位置开始至本文件结束为止
7.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第()个元素。
A.3B.4C.5D.6
8.字符串”Iamastudent.”在存储单元中占()个字节。
A.14B.15C.16D.17
9.若int(*p)[5];,其中,p是()。
A.5个指向整型变量的指针
B.指向5个整型变量的函数指针
C.一个指向具有5个整型元素的一维数组的指针
D.具有5个指针元素的一维指针数组,每个元素都只能指向整型量
10.在16位的PC上使用C语言,若有如下定义:
structdata
{inti;
charch;
doublef;
}da;
则变量da占用内存的字节数为()
A.1B.4C.8D.11
三、程序阅读题,写出程序结果(每题4分,共20分)
1.有以下程序:
#include
voidmain()
{charc1,c2;
inta,b;
scanf("%d,%d",&a,&b);
c1=a+3;
c2=b-32;
printf("%c,%c\n",a,b);
printf("%c,%d\n",c1,c2);
}
程序运行时,若从键盘输入(第1列开始)
65,97<回车>
则输出结果是
2.有以下程序:
#