第 1 页:选择题 |
第 5 页:程序填空题 |
第 6 页:程序改错题 |
第 7 页:程序设计题 |
一、选择题
1执行下列程序后,变量a,b,e的值分别是( )。
int x=5,Y=4;
int a,b,e;
a=(--x==y++)?x;++y;
b=++x;
c=y;
A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,C=6
参考答案:B
参考解析:本题考查自加(++)、自减(--)运算符的使用。“++X,--x”,在变量x前使用,先使x的值加1或者减l,再使用此时的表达式的值参与运算;“x++,X--”,先把使用x的值参与运算,在使用x之后,再使x的值加l或者减1。
对于表达式--×=4,y+十=4,两者相等,--x=y++为真,所以a=x=4,执行完此语句后Y的值是5。第2个表达式b=++x,X的值先加l,然后赋给b,即b=x+1=5;表达式c=y=5。故选项B正确。
2C语言可执行程序的开始执行点是( )。
A.包含文件中的第一个函数
B.程序中第一个函数
C.程序中的main()函数
D.程序中第一条语句
参考答案:C
参考解析:每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,并在main()函数中结束。
3设有定义的语句:“char c1=92,c2=92;”,则以下表达式中的值为零的是( )。
A.c1^c2B.c1&c2C.^c2D.^c1
参考答案:A
参考解析:当值相同时按位异或,则为0,按位或与 按位与时仍不变,负数也为非0。
4有以下程序:
main()
{ int x=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1:
printf(”%d,%d,%d\n”,x,y.z);
}
程序执行后的输出结果是( )。
A.3,2,0B.3,2,-1C.4,3,-1D.5,2,5
参考答案:B
参考解析:
while语句执行如下:
当z=3,x=0时,表达式z一一>0&&++x%5为真,Z的值变为2,X的值变为l,执行语句“y=y-1;”,Y的值变为4;
当z=2,x=1时,表达式z一一>0&&++x<5为真,z的值变为1,X的值变为2,执行语句“y=y-1;”,y的值变为3;
当z=1,x=2时,表达式z一一>0&&++x<5为真,z的值变为0,X的值变为3,执行语句“y=y-1;”,Y的值变为2;
当z=0,x=3时,表达式z一一>0为假,表达式(z一一>o&&++x%5)为假,Z的值为-1,不进行++x<5的判断,不执行语句y=y-1;;
所以X的值为3,Y的值为2,z的值为-1。答案为B。
5下述程序执行的输出结果是( )。
#include
main()
{char a[2][4];
strcpy(a,"are");strcpy(a[1],"you");
a[0][3]='&'
print[(”%s\n”,a);
}
A.are&youB.youC.areD.&.
参考答案:A
参考解析:strepy实现的功能是复制,该操作把are复制到a中,a[o][3]=’&’,且strcpy(a[1],”you”)把you复制到a[1]中,故输出a为“are&you”。
6两个或两个以上模块之间联系的紧密程度称为( )。
A.耦合性B.内聚性C.复杂性D.数据传输特性
参考答案:A
参考解析:耦合性用来表示模块间互相连接的紧密程度的度量。它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
7若有以下程序:
#include
main()
{int k=2,m=4,n=6,。pk=&k,*pm=&m,*P;
*(P=&n)=*pk*(*pm);printf("%d\n",n);
)
程序的输出结果是( )。
A.4B.6C.8D.10
参考答案:C
参考解析:p=&n即指针P指向n的地址,*(p一&n)即*P即n的值n=2*4=8。因此正确的答案为C。
8交换两个变量的值,不允许用临时变量,应该使用下列( )位运算符。
A.&B.^C.||D.~
参考答案:B
参考解析:按逻辑位运算特点:①用按位与运算将特定位清为0或保留特定位;②用按位或运算将特定的位置为l;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。
9下列字符数组初始化语句中,不正确的是( )。
A.char c[]='goodmorning';B.char e[20]="goodmorning":C.char c[]=('a','b','c','d');D.char c[]={”ffgoodmorning”);
参考答案:A
参考解析:本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②C语言中没有字符串变量,只能用字符数组来存储字符串。
10有以下程序:
#include(strint9.h>
main()
{char p[20]={'a','b','c','d'},q[]=”abe”,r[]=”
abcde”;
strcpy(p+strlen(q),r);strcat(p,q);
printf(”%d%d\n”,sizeof(p),strlen(p));
)
程序运行后的输出结果是( )。
A.20 9B.9 9C.Z0 11D.11 11.
参考答案:C
参考解析:在主函数中,首先定义一个包含20个元素的字符数组P,执行语句“strcpy(p+strlen(q),r);”,数组P的内容变为{a,b,c,a'b,c,d,e,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0),执行语句“strcat(P,q);”,数组P的内容变为ra,b,C,a,6,c,d,e,a,b,C,\0,\0,\0,\0,\0,\0,\0,\0},函数sizeof(p)是求数组P的大小,返回20,而函数strlen(p)是计算以P所指起始地址的字符串的长度,这一长度不包括串尾的结束标志0,所以函数返回11。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |