二级C语言分类模拟题573
(总分43, 做题时间90分钟)
选择题
1. 
已知字符"A"的ASCII代码值是65,字符变量c1的值是"A",c2的值是"D"。执行语句printf("%d, %d", c1, c2-2);后,输出结果是______。
A A,B
B A,68
C 65,66
D 65,68
    分值: 2.5
答案:C
[解析] 在C语言中,用整型格式输出字符时,输出的是其ASCII码值。
2. 
若有声明“char a[5]={"A","B","C","D","E"),*p=a,i;”,则以下语句中不能正确输出a数组全部元素值的是______。
A for(i=0;i<5;i++)pfintf("%c",a[i]);
B for(i=0;i<5;i++)printf("%c",*(a+i));
C for(i=0;i<5;i++)printf("%c",*p++);
D for(i=0;i<5;i++)printf("%C",*a++);
    分值: 2
答案:D
3. 
以下叙述中错误的是______。
A C语言编写的函数源程序,其文件名后缀可以是C
B C语言编写的函数都可以作为一个独立的源程序文件
C C语言编写的每个函数都可以进行独立的编译并执行
D 一个C语言程序只能有一个主函数
    分值: 1
答案:C
[解析] 函数是指预先定义功能块,其目的是提高程序的重用性。在C语言中函数的源程序,后缀名可以为C。C语言所编写的函数都可以是一个独立的源文件。一个C语言程序只能有一个主函数。C语言中编写的函数不是每个都可以独立地编译和执行的,因为C语言中程序的开始为主函数,如果程序中没有主函数则无法进行编译和执行。
4. 
有下列程序:
#include<stdio.h>
#include<string.h>
main()
{char v[4][10],*p[4],*t;
int i,j;
for(i=0;i<4;i++)
{p[i]=v[i];
scanf("%s",p[i]);
}
for(i=0;i<3;i++)
for(j=i+1;j<4;j++)
if(strcmp(p[i],p[j])>0)
{t=p[i];p[i]=p[j];p[j]=t;}
for(i=0;i<4;i++)
printf("%s",p[i]);
}
程序执行时若输入:Welcome you to Beijing<回车>,则输出结果是______。
c语言中structA Beijing Welcome to you
B Beijing to Welcome you
C Welcome you to Beijing
D to you Beijing Welcome
    分值: 1
答案:A
[解析] main()函数定义一个二维字符数组v,另外定义一个数组,包含4个字符指针元素,第一个for循环将数组v对应下标为i的字符串首地址赋给数组p的下标为i的元素,使得p中的4个指针元素分别指向v中的4个字符串,然后使用scanf()函数,输入4个字符串赋给v中的4个元素,由此可知数组p的4个指针元素指向该4个字符串;接着再使用两个嵌套的for循环,对v中的4个字符串按照ASCII码的大小排序,strcmp()函数是将p[i]、p[j]两个字符串自左向右逐个字符比较ASCII码,直到出现不同的字符或遇到"\0"为止,当p[i]>p[j]时,返回正数,所以本题排序后,输出结果为:Beijing Welcome to you。故本题答案为A选项。
5. 
下列字符串是标识符的是______。
A aa
B a-class
C int
D LINE 1
    分值: 2
答案:A
6. 
以下叙述中正确的是______。
A 在语句“char str[]="string!";"中,数组str的大小等于字符串的长度
B 语句“char str[10]="string!";"和"char str[10]={"string!"};”并不等价
C 对于一维字符数组,不能使用字符串常量来赋初值
D 对于字符串常量“string!”,系统已自动在最后加入了"\0"字符,表示串结尾
    分值: 1
答案:D
[解析] 字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符"\0"自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占(n+1)个字节。A选项中数组长度比字符串长度小一个字节,因为字符串中包含隐含的结尾符。B选项中两者等价。C选项中,可以使用字符串常量来给一维字符数组赋值,就像B选项中一样。
7. 
程序中对fun函数有如下说明:
void * fun();
此说明的含义是______。
A fun函数无返回值
B fun函数的返回值可以是任意的数据类型
C fun函数的返回值是无值型的指针类型
D 指针fun指向一个函数,该函数无返回值
    分值: 2
答案:C
[解析] C语言中函数的定义分为有参函数的定义和无参函数的定义。无参函数的定义形式为:
类型标识符函数名()
{ 说明部分
语句
}
有参函数的定义有两种形式:
类型标识符函数名(形式参数列表)
形式参数说明
{ 说明部分
语句
}

类型标识符函数名(类型名 形参1,类型名 形参2,…)
{ 说明部分
语句
}
其中函数名为用户定义的C语言的合法标识符,其前面的类型标识符用来说明函数值的类型,可以是C允许的任何类型,如int、char、float、double和指针类型等。当函数值为整型时类型标识符可以省略,如果函数没有返回值,类型标识符可以是void型。当函数的形参多于一个时,各个形参之间用逗号分隔。
8. 
下面不属于对象的主要特征的是______。
A 惟一性
B 多态性
C 可复用性
D 封装性
    分值: 1
答案:C
[解析] 对象的基本特点主要有:①标识惟一性,一个对象通常可由对象名、属性和操作三部分组成;②分类性,指将具有相同属性和操作的对象抽象成类;③多态性,指同一个操
作可以是不同对象的行为,不同对象执行同一操作产生不同的结果;④封装性,从外面看只能看到对象的外部特性,对象的内部对外是不可见的;⑤模块独立性,由于完成对象功能所需的元素都被封装在对象内部,所以模块独立性好。
9. 
以下关于C语言的叙述中正确的是______。
A C语言中的变量可以在使用之前的任何位置进行定义
B C语言中的注释不可以夹在变量名或关键字的中间
C 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D C语言的数值常量中夹带空格不影响常量值的正确表示
    分值: 1
答案:B
[解析] 注释夹在变量名或关键字的中间,就把它分割了,所以错误。
10. 
下列关于C语言文件的叙述中正确的是______。
A 文件由数据序列组成,可以构成二进制文件或文本文件
B 文件由结构序列组成,可以构成二进制文件或文本文件
C 文件由一系列数据依次排列组成,只能构成二进制文件
D 文件由字符序列组成,其类型只能是文本文件
    分值: 1
答案:A
[解析] 文件有二进制文件和文本文件,里面的数据与类型无关,所以选择A。
11. 
有以下程序:
# include <stdio.h>
void fun(int*s)
{ static int j=0;
do{s[j]=s[j]+s[j+1];}while(++j<2);
}
main()
{ int k.a[10]={1,2,3,4,5};
for(k=1;k<3;k++) fun(a);
for(k=0; k<5;k++)pfintf("%d",a[k]);
printf("\n");
}
程序运行后的输出结果是______。
A 12345
B 23445
C 34756
D 35745
    分值: 1
答案:D
[解析] 本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[0]=3,s[1]=5,s[2]=7,所以答案选择D。
12. 
C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符______。
A 必须为字母
B 必须为下划线
C 必须为字母或下划线
D 可以是字母、数字和下划线中的任意一种
    分值: 1
答案:C
13. 
若x、i、j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为______。
A 4
B 16
C 32
D 52
    分值: 2.5
答案:C
14. 
有以下程序
#include <stdio.h>
main()
{
char ch[]="uvwxyz",*pc;
pc=ch;
printf("%c\n",*(pc+5));}
程序运行后的输出结果是______。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。