国家计算机c语言二级考试试题
在国家计算机c语言二级考试种有哪些试题类型呢?下面是学习啦小编给大家整理的计算机c语言二级考试试题及答案,供大家参阅!
国家计算机c语言二级考试试题
一、选择题
1.有以下程序:
#include
main( )
{int a=1,b=2;
for(;a<8;a++){b+=a;a+=2;)
printf("%d,%d\n",a,b);
)
程序运行后的输出结果是( )。
A.9,18
B.8,11
C.7,11
D.10,14
2.有以下程序,其中k的初值为八进制数:
#include
main( )
{int k=011;
printf{"%d\n",k++};
}
程序运行后的输出结果是( )。
A.12
B.11
C.10
D.9
3.下列语句组中,正确的是( )。
A.char*s;s="Olympic";
B.char sE73;s="Olympic";
C.char*S;s={¨Olympic"};
D.char sET3;s={"Olympic"};
4.以下关于return语句的叙述中正确的是( )。
A.一个自定义函数中必须有一条return语句
B.一个白定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
5.下列选项中,能正确定义数组的语句是( )。
A.int num[0..2008];
B.int num [];
C.int N=2008;int num[N];
D.#define N 2008; int num[N];
6.有以下程序:
#include
void fun(char*C,int d)
{*c=*c+1,d=d+1;
printf(%"c%,c",*c,d);
}
main( )
{char b=’a’a=’A’;
fun(&b,a);printf(%"c,%c\n",b,a);
)
程序运行后的输出结果是( )。
A.b,B,b,A
B.b,B,B,A
C.a,B,B,a
D.a,B,a,B
7.若有定义"int(*pt)[3];",则下列说法正确的是( )。
A.定义了基类型为int的三个指针变量
B.定义了基类型为int的具有三个元素的指针数组pt
C.定义了一个名为*pt、具有三个元素的整型数组
D.定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
8.设有定义"double a[10],*s=a;",以下能够代表数组元素a[3]的是( )。
A.(*s)[3]
B.*(s+3)
C.*s[3]
D.*s+3
9.有以下程序:
#include
main( )
{int a[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;
for(i=o;i<5;i++)s=s+a[b[i]];
printf(”%d\n”,s);
)
程序运行后的输出结果是( )。
A.6
B.10
C.11
D.15
10.有以下程序:
#include
main( )
{int b[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;
for(i=0;i<3;i++)
for(j=1;j<=i;j++)t+=b[i][b[j][i]];
printf("%d\n",t);
)
程序运行后的输出结果是( )。
A.1
B.3
C.4
D.0
二、基本操作题
请补充main( )函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。
例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。
注意:部分源程序给出如下。
请勿改动函数( )main和其他函数中的任何内容,仅在main( )函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define M l0
void main( )
{
int i,n=0;
int arr[M]=(40,68,62,33,35,52,48,95,66,73);
int bb[M];
system("CLS");
for(i=0;i<【1】;i++)
if(arr[i]【2】;
printf("\n***display bb***\n");
for(i=0;iprintf("bb[%d]=%2d",【3】);
}
国家计算机c语言二级考试试题答案
一、选择题
1.D。【解析】第一次执行循环前,a=1,满足a<8,执行循环后,b=3,a=3。执行完a++操作后,a=4。由于a<8,执行第二次循环后,b=7,a=6,执行完a++操作后,a=7。由于a<8,执行第三次循环后,b=14,a=9,执行完a++操作后a=10。此时不满足a<8,跳出循环。
2.D。【解析】八进制数k=011得十进制值为9,因此题中输出的是k的十进制值,输出完成后才执行 k++操作。
3.A。【解析】给字符串数组赋值时,要先定义数组长度,然后再赋值。可以只给部分元素赋初值,当( )中值的个数少于元素个数时,只给前面部分元素赋值。数组的下标是从0开始的,所以s[7]代表从s[0]到s[6]七个元素。其格式可以写成:char数组名[常量]={’字符’,’字符’,…);,也可写为char数组名[常量]={"字符串"};,或去掉{)写为:char数组名[常量]="字符串"。所以本题应选择A选项。
4.B。【解析]return语句又称为返回语句。该语句的格式如下:“return;”和“return(<表达式>);”。其中,return是关键字。该语句有两种格式:不带返回值格式和带返回值格式。该语句用在被调用函数中,在被调用函数中执行到该语句时,将结束对被调用函数的执行,并把控制权返回给调用函数,继续执行调用函数后边的语句。在带有返回值的情况下,将return语句所带的表达武的值返回给调用函数,作为被调用函数的值。在被调用函数中,可以用return语句,也可以不用return语句。如果要求被调用函数有返回值,则一定要用return语句,采用return(<表达式>);格式。如果被调用函数不需要返回值,并且当被调用函数的所有语句执行完后进行返回,则被调用函数可以不用return语句。
5.D。【解析】通过define进行宏定义,将N赋值为2008,然后定义一个数组,整型长度为2008,所以本题答案为D。
6.A。【解析】本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。
7.D。【解析】数组指针是指向数组的一个指针,int(*pt)[3]表示一个指向3个int元素的数组的一个指针。
8.B。【解析】用带下标的指针变量引用一维数组元素若有以下定义和语句:“int*P,s[10],i;P=s}”,且o≤i<10,可以用&.s[i]、s+i和p+i三种表达式来表示s[i]的地址。同时可以用s[i]、*(s+i)和*(p+i)三种表达式来表示数组元素s[i]。
9.C。【解析】本题考查数组的使用。本题定义了两个数组,注意数组的下标是从0开始的,进行第1次for循环:当i=0时,b[0]为数组b中第l个元素,结果为0,那么a[0]也是数组a中第l个元素,结果为1,所以S的值为1。第2次循环:i此时自加为l,b[1]为数组的第2个元素,值为2,所以可求出a[2](数组中的第3个元素)的值为3,s=s+3,所以S
的值为4。进入第3次for循环,依此类推,第3次for循环结束时s的值为6。第4次for循环,s的值变为l0。第5次for循环时,此时i的值为4,s的值变为ll,i=5不符合题意,所以跳出循环,输出结果,所以本题答案为C。
10.C。【解析】本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。
二、基本操作题程序填空题
【1】M-1【2】bb[n++]=arr[i]【3】i,bb[i]
【解析】由整个for循环可知,变量i为数组arr的下标,题目中要求取出前一个元素比后一个元素小的元素,所以只需要判断前M-1个元素即可。因此,【1】处填“M-1”;如果第i个元素比第i+1个元素小,将第1个元素放入数组bb中,因此,【2】处填“bb[n++]=arr[i]”。最后,要输出数组bb中的每一个元素。因此,【3】处填“i,bb[i]”。
看了“国家计算机c语言二级考试试题”