全国计算机二级C语言模拟题汇总.docx
《全国计算机二级C语言模拟题汇总.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言模拟题汇总.docx(40页珍藏版)》请在冰豆网上搜索。
![全国计算机二级C语言模拟题汇总.docx](https://file1.bdocx.com/fileroot1/2023-1/26/2ce6a4ee-d079-4719-8fb1-8bb0715ab3e5/2ce6a4ee-d079-4719-8fb1-8bb0715ab3e51.gif)
全国计算机二级C语言模拟题汇总
二级C语言模拟试题
2012/9/1
一、填空题
1.在C语言程序设计中,正确的标识符是由____________________组成的。
2.设x=4,y=(++x)+(++x);那么y的值为_____,表达式执行后,变量x的值为_______。
3.一个变量的指针是指_____________________________________________。
4.能够构成一个数组,其元素满足的特点是__________________________________;
那么,构成结构体的成员可以是_________________________________________。
5.下面运算符<%++=按照优先级从高到低排列顺序为______________。
6.C程序设计中语句后的符号/*……*/所起作用是_________________________。
7.写出下面表达式的值
3*5/7+7%3____________________
x=2;y=4;(x++)+y_____________________
3+4>=7-10_____________________
3>4?
3%2:
1___________________
x=2,y=2;++x||++y_______________
x=3;x+=x-=2_____________________
二、选择题
⑴.在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为()
A.FILE
B.RUN
C.EDIT
D.OPTION
⑵.下列语句不具有赋值功能的是()
A.a*=b
B.x=1
C.a+b
D.a++
⑶.C语言程序中,当出现条件分支语句if~else时,else与()组成配对关系
A.同一复合语句内部的if
B.在其之前任意的if
C.在其之前未配对的最近的if
D.首行位置相同的if
⑷.下列数组定义方式不正确的语句是()
A.charx[5];
B.chary[]={‘h’,‘e’,‘l’,‘l’,‘o’};
C.intx[10]={12,13,14,15};
D.inty[];
⑸.若有如下定义和语句,且0<=i<5,下面()是对数值为3数组元素的引用
inta[]={1,2,3,4,5},*p,i;
p=a;
A.*(a+2)
B.a[p-3]
C.p+2
D.a+3
⑹.下列()表达式的值为真
a=5;b=8;c=10;d=0
A.a*2>8+2
B.a&&d
C.(a*2-c)||d
D.a-b
⑺.下列字符数组长度为5的是()
A.chara[]={‘h’,‘a’,‘b’,‘c’,‘d’};
B.charb[]={‘h’,‘a’,‘b’,‘c’,‘d’,‘\0’};
C.charc[10]={‘h’,‘a’,‘b’,‘c’,‘d’};
D.chard[6]={‘h’,‘a’,‘b’,‘c’,‘\0’}
⑻.执行下列程序后,其结果为()
inta[]={2,4,6,8,10,12};*p;
p=a;
*(p+4)=2;
printf(“%d,%d\n”,*p,*(p+4));
A.0,10
B.0,2
C.2,10
D.2,2
⑼.有下列结构体,对该结构体变量stu的成员项引用不正确的是()
structstudent
{intm;
floatn;
}stu,*p;
A.stu.n
B.p->m
C.(*p).m
D.p.stu.n
⑽.下列函数中不能用于对文件进行输入输出操作的是()
A.fscanf()
B.printf()
C.fgetc()
D.fputs()
三、判断题
1.C语言程序设计可以对计算机硬件进行操作。
()
2.在循环过程中,使用break语句和continue语句的作用是一样的。
()
3.在函数的定义和调用过程中,形式参数和实在参数数目可以不一致。
()
4.对于某一指针变量可以接收任何类型的值。
()
5.在C语言程序设计中,不同类型的数在计算机内存中所占空间是不同的。
()
6.文件指针是结构体类型,可以用表示file来定义。
()
7.选择结构不可以使用嵌套形式,但是循环结构可以使用嵌套形式。
()
8.在定义数组时,有时可以将该数组的维数省略。
()
9.运算符&&+*的优先级是*优先于+优先于&&。
()
10.任何数组都可以实现对其进行整体操作。
()
四、程序填空题
1.下面是实现输出九九乘法表的程序,在画线的位置填上适当的语句,使该程序完整。
main()
{inti,j,k;
for(i=1;_____________;i++)
{bsp;{
for(__________;j<=i;j++)
printf(“%d*%d=%d”,_______________);
printf(________________);
}
}
2.设计一个自定义函数,实现如下功能:
求两个数的平方和,并且返回该和。
自定义函数如下:
intmax(x,y)
{
}
3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:
学生信息:
包括(姓名,性别,年龄,分数:
根据合适情况选择各项类型)
structstudent
{
}
4.根据给出的程序段,请写出正确的结果
x=1;p=1,sum=0;
for(x=1;x<=5;x++)
{p=p*x;
sum=sum+p;}
上面的程序段实现的功能是计算下面的式子_______________________________;
其运行结果为_________________________________________________________。
五、阅读程序,写出下列程序段的结果
1.int*p,i;
i=100;
p=&i;
i=*p+10;执行完上面的语句段后,i的值是______
2.intA,B,C,m=1,n=0;
A=(--m=n++)?
--m:
++n;
B=++m;
C=n--;
执行完上面的语句段后,A的值为______B的值为______C的值为______
3.main()
{intc1=10,c2=10;
printf(“c1=%d,c2=%d\nc1=%d”,++c1,c2++,c1--);
}
该程序的运行结果是_______________________________________________。
4.main()
{inti;
for(i=3;i<10;i++)
{if(i%4==0)
continue;
else
printf(“%d,”,i);
}}
该程序输出的结果是_______________________________________
5.main()
{intx;
x=3;
do
{printf(“%d”,x--);
}while(!
x);}
该程序运行的结果是___________________________________________________________
六、编程题
1.编程实现:
从键盘上接收10个整数,并对其进行排序(要求排成升序)。
2.编程实现求下面的式子的结果
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去,同时将小写字母转换成大写字母。
参考答案
一、填空题
1.字母、数字、下划线
2.12,6
3.该变量的地址
4.同一类型;不同类型
5.++%<=6.注释
6.3,1,1,612
二、选择题
⑴.B⑵.C⑶.C⑷.C⑸.A⑹.D⑺.A⑻.D⑼.D⑽.B
三、判断题
1.对2.不对3.不对4.不对5.对
6.不对7.不对8.对9.对10.不对
四、程序填空题
1.i<=9j=1i,j,i*j“\n”
222.intmax(x,y)
intx,y;sp;intx,y;
{intz;
z=x*x+y*y;
return(z);}
3.structstudent
{charxm[10];
charsex;
intage;
floatscore;}
4.1!
+2!
+3!
+4!
+5!
1+2+6+24+120=153
五、阅读程序,写出下列程序段的结果
1.110
2.–101
3.c1=10,c2=10
c1=10
4.3,5,6,7,9
5.3
六、编程题
1.main()
{inta[10];
intm,n,t;
for(m=0;m<10;m++)
scanf(“%d”,&a[m]);
for(m=0;m<9;m++)
for(n=0;n<9;n++)
if(a[n]>a[n+1])
{t=a[n];a[n]=a[n+1];a[n+1]=t;}
for(m=0;m<10;m++)
printf(“%d”,a[m]);
}
2.
main()
{floatx,y;
scanf(“%f”,&x);
if(x>6)
y=(x+2)/(3*x+1);
else
y=x*x+3*x+1;
printf(“%f”,y);
}
3.main()
{FILE*fp1,*fp2;
charch;
fp1=fopen(“file1.dat”,“r”);
fp2=fopen(“file1.dat”,“w”);
ch=fgetc(fp1);
while(ch!
=EOF)
{
if(ch>=’a’&&ch<=’z’)
ch=ch-32;
fputc(ch,fp2);fputc(ch,fp2);
ch=fgetc(fp1);
}bsp;}
fclose(fp1);
fclose(fp2);
}
一、选择题
1.一个C语言程序是由()构成。
A.语句
B.行号
C.数据
D.函数
2.下面标识符中正确的是()。
A.a#bc
B.123ABC
C.sime
D.Y·M·D
3.在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数是()。
)。
)。
)。
A.2、1、8
B.4、1、4
C.4、1、4
D.2、2、8
4.为了避免嵌套的条件分支语句if--else中的else总是与()组成成对关系。
A.缩排位置相同的
B.在其之前未配对的
C.在其之前未配对的最近的if
D.在同一行上的if
5.下列表达式的结果正确的是()。
inta,b,c,d;
a=b=c=d=2;
d=a+1==3?
b=a+2:
a+3
A.2B.4C.3D.5
二、填空题
1.在C语言中,正确的标识符是由______________________组成的,且由_______________开头的。
2.设x=3,那么表达式y=(++x)+(++x)的结果为_________,表达式执行后,变量x的结果为_________。
3.一个变量的指针是指_________________________________________________________________。
4.组成数组元素的特点是_______________________________________________;
组成结构体元素的特点是________________________________________________。
5.在C语言程序中,对文件进行操作首先要______________________________;然后对文件进行操作,最后要对文件实行__________________________________操作,防止文件中信息的丢失。
6.对字符串进行操作的函数有_______________________________________________________等。
7.C语言程序是由___________________构成的,而C语言的函数是由____________________构成的。
8.要想定义整型变量a,实型变量b,字符型的变量c,应该使用的正确语句为______________________________________________________________________________________。
9.写出下面表达式的值
3*5/7+7%3_______________________x=2;y=4;(x++)+y_________________________
3+4>=7-10_______________________3>4?
3%2:
1______________________________
x=2,y=2;++x&&++y_________________x=3;x+=x-=2______________________________
三、判断题
1.C语言的一个特点是可以对计算机硬件进行操作()
2.在循环过程中,使用break语句和continue语句的作用是一样的()
3.在函数的定义和调用过程中,形式参数和实在参数数目可以不一致()
4.指针变量可以接收任何类型的值()
5.在C语言程序设计中,字符数组和字符串不是完全一样的概念()
6.文件指针是结构体类型,用符号file来表示()
7.选择结构(if语句)和循环结构都可以使用嵌套形式()
8.在定义二维数组时,可以将该数组的两个维数全部省略()
9.逻辑运算符&&||!
的运算顺序是!
优先于&&优先于||()
10.任何数组都可以实现整体使用操作()
四、程序填空题
1.下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。
main()
{inti,j,k;
for(i=1;_____________;i++)
{for(j=1;______________;j++)
printf(“%d*%d=%d”,_______________);
printf(________________);
}
}
2.自己设计一个自定义函数,实现求两个数的最大数的功能,自定义函数如下:
intmax(x,y)
intx,y;
{
}
3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:
学生信息:
包括(姓名,性别,年龄,分数),并且定义变量stud和数组stud1[30]
structstudent
{
}
4.根据给出的程序段,请写出正确的结果
x=1;sum=1;
for(x=1;x<=5;x++)
sum=sum*x;
上面的程序段实现的功能是:
______________________________________________________;
其运行结果为______________________________________________________________________。
5.设有如下的语句。
inta=43,b,c;
b=23;
c=a++*--b;
(1)上面的语句段执行后a=b=c=;
(2)简述a++和++a的相同点和不同点:
6.设有如下的程序:
main()
{inti=3,*p1;
inta[3]={15,30,45},*p2;
p1=&i;p2=a;
p1=p2+2;
printf(“%d,%d\n”,*p1,*p2);
}
程序运行结果是:
_______。
五、编程题(25分)
1.编程实现对10个整数进行冒泡排序(要求排成升序)。
2.编程实现求下面的式子的结果
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去
六、附加题
用C语言程序实现在已知链表中的第三个位置插入数值为a的程序
参考答案
一、选择题
1.D2.C3.A4.C5.B
二、填空题
1.字母、数字、下划线;以字母、下划线开头。
2.10;5。
3.该变量的地址。
4.一组数据类型相同的元素构成的;一组数据类型不同的元素构成的。
5.打开;关闭。
6.字符串长度、取子字符串、字符串替换、字符串复制等。
7.函数;语句。
8.inta;floatb;charc;
999.361112
三、判断题
1.对2.错3.错4.错5.对
6.错7.对8.错9.对10.错
四、程序填空题
1.i<=9j<=9
printf(“%d*%d=%d”,i,j,i*j);
printf(“\n”);i,j,k;
2.intz;
if(x>=y)z=x;
elsez=y;
returnz;
3.charname[20];
charsex;
intage;
floatscore;
4.实现功能:
计算连续数之积,即sum=1*2*3*4*5;
运行结果:
sum=120
5.4422946
a++:
先加1,后使用表达式的值;++a表示先加1,后使用表达式的值,它们最后的结果使a加1。
6.45,15
五、编程题
1.编程实现对12个整数进行冒泡排序(要求排成升序)。
Main()
{inta[12];intm,n,p;
for(m=0;m<=11;m++)(m=0;m<=11;m++)
scanf(“%d”,&a[m]);
for(m=0;m<=11;m++)
for(n=0;n<11-m;n++)
if(a[n]>a[n+1])
{p=a[n];a[n]=a[n+1];a[n+1]=p;}
for(m=0;m<=11;m++)
printf(“%d”,a[m]);}
2.编程实现求下面的式子的结果
#include“math.h”
main()
{floatx,y;
scanf(“%f”&x);
if(x>6)y=(x-3)/(2*x-12);
elsey=-2*x*x+4*x-10;
printf(“y=%f”,y);}
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去
main()
{charch;
FILE*fp1,*fp2;
Fp1=fopen(“file1.dat”,“r”);
Fp2=fopen(“file2.dat”,“w”);
Ch=fgetc(fp1);
While(ch!
=EOF)
{fputc(ch,fp2);
Ch=fgetc(fp1);}
Fclose(fp1);
Fclose(fp2);}
六、附加题
p=H;K=0;
While(p!
=NULL&&k
{p=p->next;
k++;}
if(p==NULL&&H!
=NULL)printf(“thisisinvilid”);
else
{q=(StructLinklist*)malloc(sizeof(StructLinklist));
q->data=x;q->data=x;
q->next=p->next;
p->next=q;}
一、选择题
1.一个C语言程序是由()构成。
A.语句
B.行号
C.数据
D.函数
2.下面标识符中正确的是()。
A.d&ef
B.6a
C.z4x5c
D.a3/b4
3.在C语言中,存储一个字符型、整型、单精度实型变量所需的空间是()。
型、单精度实型变量所需的空间是()。
A.1、2、4
B.1、1、4
C.1、2、8
D.2、2、8
4.为了避免嵌套的条件分支语句if--else中的else总是与()组成成对关系。
A.缩排位置相同的
B.在其之前未配对的
C.在其之前未配对的最近的if
D.在同一行上的if
5.下列表达式的结果正确的是()。
intaa,bb,cc,dd;
aa=bb=cc=dd=1;sp;aa=bb=cc=dd=1;sp;aa=bb=cc=dd=1;
(aa+1==2)?
bb=aa+2:
aa+3
A.2
B.3
C.1
D.5
6.设有intx=11;则表达式(x+1/3)的值是()。
A.3
B.4
C.11
D.12
7.设有字符串A=“Hehas钱!
”,则