计算机二级C语言五套模拟卷及答案Word文档格式.docx
《计算机二级C语言五套模拟卷及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言五套模拟卷及答案Word文档格式.docx(45页珍藏版)》请在冰豆网上搜索。
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:
A)j*m+iB)i*m+jC)i*m+j-113D)i*m+j+1
10.C语言中变量的指针指的是:
A)变量类型B)变量值C)变量值D)变量地址
11.设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为:
A)strcpy(str1,str2);
B)strcpy(str1,“China”);
C)strcat(str1,“China”)
D)strcat(“Beijing”,str2);
12.以下程序的运行结果是:
main()
{inta=2,i;
for(i=0;
i<
3;
i++)printf(“%4d”,f(a));
}
f(inta)
{intb=0,c=3;
b++;
c++;
return(a+b+c);
A)71013B)777
C)7911D)789
13.在C语言程序中,若未在函数定义时说明函数类型,则函数默认的类型为:
A)voidB)doubleC)intD)char
14.在说明一个结构体变量时系统分配给它的存储空间是。
E)该结构体中第一个成员所需存储空间
F)该结构体中最后一个成员所需存储空间
G)该结构体中占用最大存储空间的成员所需存储空间
H)该结构体中所有成员所需存储空间的总和
15.使用fseek函数可以实现的操作是。
E)改变文件的位置指针的当前位置
F)文件的顺序读写
G)文件的随机读写
H)以上都不对
二、判断题(本大题10分,每小题1分)
1、C程序可以由若干个源文件组成,因此最小的功能单位是源文件,最小编译单位的是函数。
()
2、C程序有三种结构化程序设计方法,分别顺序结构、选择结构和循环结构。
3、在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。
4、for语句作为循环控制语句时,其括号内各个表达式及其后的分号都可缺省。
5、C程序中函数不可以嵌套定义但可以嵌套调用。
6、字符串可以用来给数组赋值,在C程序的执行语句中可以直接用字符串给数组名赋值。
()
7、数组名也可作为函数参数使用,此时数组名代表数组的起始地址。
8、在函数内的复合语句中定义的变量在本函数范围内有效。
9、声明一个结构体类型的一般形式为struct结构体名{成员表列};
。
10、ANCIC规定了标准输入输出函数库,用fseek()函数来实现打开文件。
三、程序填空题(本大题12分,每小题2分)
1.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。
{intm,n,s;
for(m=2;
m<
1000;
m++)
{____
(1)____;
for(n=1;
n<
=m/2;
n++)
if(__
(2)___)s+=n;
if(__(3)___)printf(“%d\n”,m);
}}
2..用起泡法对十个数由大到小排序。
{inta[11],i,j,t;
printf(“input10numbers:
\n”);
for(i=1;
11;
i++)
scanf(“%d”,&
a[i]);
printf(“\n”);
for(j=1;
j<
=9;
j++)
for(i=1;
_
(1)__;
i++)
if(__
(2)___)
{t=a[i];
a[i]=a[i+1];
__(3)__;
}
printf(“thesortednumbers:
for(i=1;
i<
printf(“%d”,a[i]);
四、写出下面程序的执行结果(本大题24分,每小题4分)
1.#include<
stdio.h>
main()
{charc=‘A’+‘10’-‘5’;
printf(“c=%c\n”,c);
2.#include<
{inta,b,c;
a=1;
b=2;
c=3;
if(a>
b)
c)
printf(“%d\n”,a);
elseprintf(“%d\n”,b);
printf(“over\n”);
3.main()
{chara[6][6],i,j;
6;
for(j=0;
{if(i<
j)
a[i][j]=‘#’;
elseif(i==j)a[i][j]=‘’;
elsea[i][j]=‘*’;
for(i=0;
{for(j=0;
printf(“%c”,a[i][j]);
4.main()
{inti=2,x=5,j=7;
fun(j,6);
printf(“i=%d;
j=%d;
x=%d\n”,i,j,x);
x=%d\n”,i,j,x);
5.#include<
main()
{inti,j;
int﹡p,﹡q;
i=2;
j=10;
p=&
i;
q=&
j;
﹡p=10;
﹡q=2;
printf(〞i=%d,j=%d\n〞,i,j);
}
6.structstru{intx;
charc;
};
{structstrua={10,’x’},*p=&
a;
func(p);
printf(“%d,%c”,a.x,a.c);
func(structstru*b)
{b->
x=20;
b->
c=’y’;
五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)
1.把输入的整数(最多不超过5位)按输入顺序的反方向输出,例如,输入数是12345,要求输出结果是54321,编程实现此功能。
2.编一程序,从键盘输入10个整数并保存到数组,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。
3.编写一个函数计算一个字符串的长度,输入输出在主函数内完成。
(使用指针)
模拟试题二
一、选择题(本大题30分,每小题2分)
1.C语言中不能用来表示整常数的进制是。
A)十进制B)十六进制C)八进制D)二进制
2.C语言规定标识符由等字符组成。
A)字母数字下划线B)中划线字母数字
C)字母数字逗号D)字母下划线中划线
3.若有如下定义:
inta=2,b=3;
floatx=3.5,y=2.5;
则表达式:
(float)(a+b)/2+(int)x%(int)y的值是。
A)2.500000B)3.500000C)4.500000D)5.000000
4.以下表达式:
2+’a’+i*f,其中i为整型变量,f为float型变量,则表达式的最终数据类型为。
A)intB)floatC)charD)double
5.有如下语句:
printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);
执行语句后的最终结果为。
A)COMPUTER,CMP.B)COMPUTER,CMP.
C)COMPU,CMP.D)COMPU,CMP.
6.以下if语句中语法错误的是。
A)if(a>
b)printf(“%f”,a);
B)if(a>
elseprintf(“%f”,b);
C)if(a>
b)printf(“%f”,a)D)if(a>
b)printf(“%f”,b);
elseprintf(“%f”,a);
7.能表示整数x符合下面两个条件的语句是。
(1)“能被4整除,但不能被100整除”.
(2)能被4整除,又能被400整除.
A)(x%4==0&
x%100!
=0)||x%400==0
B)(x%4==0||x%100!
x%400==0
C)(x%4==0&
x%400!
=0)||x%100==0
D)(x%100==0||x%4!
8.循环语句中的for语句,其一般形式如下:
for(表达式1;
表达式2;
表达式3)语句
其中表示循环条件的是。
A)表达式1B)表达式2C)表达式3D)语句
9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。
A)地址传递B)单向值传递
C)双向值传递D)随机传递
10.将字符串str2连接到字符串str1中应使用。
A)strcpy(str1,str2)B)strcat(str1,str2)
C)strcmp(str1,str2)D)strcat(str2,str1)
11.若有以下定义:
inta[10],*p=a;
则*(p+3)表示的是。
A)元素a[3]的地址B)元素a[3]的值
C)元素a[4]的地址D)元素a[4]的值
12.若有如下语句:
int*p1,*p2;
则其中int所指的是。
A)p1的类型B)*p1和*p2的类型
C)p2的类型D)p1和p2所能指向变量的类型
13.若有如下说明:
inta[10]={1,2,3,4,5,6,7,8,9,10};
charb=’a’,d,e;
则数值为4的表达式是。
A)a[4]B)a[d-b]C)a[‘d’-b]D)a[e-b]
14.有如下程序段,在TurboC环境下运行的结果为。
{
inti=2,p,k=1;
intf(inta,intb)
p=f(i,++k);
{intc;
printf(“I=%d,p=%d”,k,p);
if(a>
b)c=1;
}elseif(a==b)c=0;
elsec=-1;
return(c);
A)1,0B)2,0C)2,-1D)1,1
15.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是。
A)EOFB)0C)非零值D)NULL
1.在每个C语言的程序中都必须并且只能有一个main函数。
2.在C语言中,整型数据与字符型数据在任何情况下都可以通用。
3.在C语言程序中,AHP和ahp分别代表两个不同的标识符。
4.在if语句中,不可以没有else子句。
5.C语言规定,简单变量做实参时,与其对应的形参之间是单向的值传递。
6.for语句作为循环控制语句时,括号内的分号是用来分开表达式的,因此要根据需要加分号。
7.数组名也可作为函数参数使用,此时是地址传递。
8.C程序有三种结构化程序设计方法,分别嵌套结构、选择结构和循环结构。
9.数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。
10.在定义指针型变量时指定的基类型为该指针变量所能指向的变量类型。
1.输入3个实数a,b,c要求按从大到小的顺序输出三数.
{floata,b,c,t;
scanf(“%f,%f,%f”,&
a,&
b,&
c);
if(a<
{t=a;
(1);
b=t;
if(
(2))
a=c;
c=t;
if(b<
c)
{(3)b=c;
printf(“%f,%f,%f”,a,b,c);
2.打印以下杨辉三角形.(要求打印出10行)
{inta[10][10],i,j;
1
for(i=0;
10;
i++)11
{(4)(5)}121
for(i=2;
i++)-1331
for(j=1;
j<
i;
j++)14641
a[i][j]=(6);
………
{for(j=1;
=i;
j++)
printf(“%5d”,a[i][j]);
}
1.main()
{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];
inti,j;
for(i=0;
i++)
for(j=0;
4;
j++)
b[j][i]=a[i][j];
for(i=0;
{for(j=0;
printf(“%5d”,b[i][j]);
printf(“\n”);
2.main()
{inta[21],i,j,n=0;
for(i=2;
20;
a[i]=i;
for(i=2;
{if(a[i]==0)continue;
for(j=i+1;
=20;
if(a[j]%a[i]==0)a[j]=0;
if(a[i]!
=0){printf(“%4d”,a[i]);
n=n+1;
if(n%4==0)printf(“\n”);
3.floatfac(intn)
{floatf;
if(n<
0){printf(“n<
0,dataerror!
”);
f=-1;
elseif(n==0||n==1)f=1;
elsef=fac(n-1)*n;
return(f);
{intn;
floaty;
printf(“inputaintegernumber:
scanf(“%d”,&
n);
y=fac(n);
printf(“%d!
=%5.0f”,n,y);
}假如在运行程序时输入5,写出程序的运行情况及最终结果:
4.main()
{inti=10,j=0;
do
{j=j+i;
i--;
while(i>
2);
printf("
%d\n"
j);
main()
{int﹡p;
﹡p=2;
p++;
﹡p=5;
printf(〞%d,〞,﹡p);
p﹣﹣;
printf(〞%d\n〞,﹡p);
6.#include<
voidf(intc)
{inta=0;
staticintb=0;
a++;
b++;
%d:
a=%d,b=%d\n"
c,a,b);
voidmain(void)
{inti;
for(i=1;
=3;
i++)f(i);
1.已知三角形的三边长,试编程求三角形的面积.
要求:
三边长从键盘输入,要考虑数据输入是否正确,能否构成三角形等情况.假设三
边分别为:
a,b,c,s=1/2(a+b+c),area=s(s-a)(s-b)(s-c)
2.有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,……
试编程求数列前20项的和.
3.输入10个学生的成绩,分别用函数实现:
(1)求平均成绩;
(2)按分数高低进行排序并输出。
模拟试题三
1.下列有关C程序的说法中,正确的是:
A)一个C程序中只能有一个主函数且位置任意;
B)一个C程序中可有多个主函数且位置任意;
C)一个C程序中只能有一个主函数且位置固定;
D)一个C程序中可以没有主函数。
2.以下叙述中不正确的是:
A)在C程序运算符中,逗号运算符优先级最低;
B)C程序中,AHP和ahp代表两个不同的变量;
C)C程序中,整数和实数在内存中存放形式相同;
D)在C程序中,%是只能用于整数运算的运算符.
3.已知ch是字符型变量,下面不正确的赋值语句是:
A)ch=‘\0’B)ch=‘a+b’
C)ch=‘7’+‘9’D)ch=7+9
4.设有如下定义
intx=10,y=5,z;
则语句printf("
z=(x+=y,x/y));
的输出结果是。
A)1B)0C)4D)3
5.设有如下定义:
charch=’z’,则执行下面语句后变量ch是值为:
ch=(‘A’<
=ch&
ch<
=‘Z’)?
(ch+32):
ch
A)AB)aC)ZD)z
6.若x和y都为float型变量,且x=3.6,y=5.8执行下列语句后输出结果为:
printf(“%f”,(x,y));
A)3.600000B)5.800000
C)3.600000,5.800000D)输出符号不够,输出不正确值
7.设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为:
8.以下对一维整型数组a的正确说明是。
A)inta(10);
B)intn=10,a[n];
C)intn;
inta[n];
D)#defineSIZE10inta[SIZE];
9.设有如下程序段,则其执行结果为:
staticinta[]={1,2,3,4},*p;
inti;
p=a;
(p+3)+=2;
printf(“%d”,*(p+3));
A)0B)6C)a[3]地址D)不正确的值10.若I为整型变量,则下列程序段的运行结果为。
I=322;
if(I%2==0)printf(“#####”)
elseprintf(“*****”);
A)#####B)#####*****
C)*****D)有语法错误,无法输出结果
11.已知intx=30,y=50,z=80;
以下语句执行后变量x、y、z的值分别为:
if(x>
y||x<
z&
y>
z)
z=x;
x=y;
y=z;
A)x=50,y=80,z=80B)x=50,y=30,z=30
C)x=30,y=50,z=80D)x=80,y=30,z=50
12.下面程序段的运行结果是:
x=y=0;
while(x<
15)y++,x+=++y;
printf(“%d,%d”,y,x);
A)20,7B)6,12
C)20,8D)8,2013.若有语句int*point,a=45;
point=&
下面均代表同一变量地址的一组选项是:
A)&
apoint*&
a
B)&
*a&
a*point
C)point&
point&
D)&
a,&
*pointpoint
14.以下程序的运行结果是:
{intb=0;
staticintc=3
15.若有如下定义:
inta[3][3]={1,2,3,4,5,6,7,8,9},i;
则下列语句的输出结果是:
for(i=0;
=2;
i++)printf(“%d”,a[i][2-i]);
A)357B)369
C)159D)147
1.C语言本身没有输入输出语句,输入输出操作都是通过调用库函数来实现的。
2.在C语言中,int、char和short