一、选择题
1没有如下定义:
int(*ptr)():
则以下叙述中正确的是( )。
A.ptr是指向一维组数的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指int型数据的指针
参考答案:C
参考解析:本题中int(*ptr)()的含义是指向函数的指针变量,其为指向函数的指针变量,该函数返回一个int型数据,故选择C选项。
2以下程序的输出结果是( )。
A.O650B.1470C.5430 D.输出值不定
参考答案:A
参考解析:当所赋的值不够其列的宽度时,系统在其后自动补0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故选择A选项。
3若有定义:int c[4][5],(*cp)[5];和语句cp=c;,则能正确引用c数组元素的是( )。
A.cp+1B.*(cp+3)C.*(cp+1)+3 D.*(*cp+2)
参考答案:D
参考解析:cp是行指针,只表示行。若要表示元素,则需要配合列,A:表示第二行;B:表示第四行的内容,但是设指出那一列;C:*(cp+1)+3只是地址不是元素值,需改为*(*(cp+1)+3)。
4有以下程序:
输出的结果是( )。
A.ZhangB.B.ZhaoC.Wang D.18
参考答案:B
参考解析:从实参传递过去的是结构体系数组的第3个元素,所以输出的name为Zhao。
5若有下列定义和语句:
则输出结果是( )。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
参考答案:C
参考解析:“%o”表示八进制无符号型输出整型数据(即不带前导0);“%x”表示以十六进制无符号型输出整型数据(即不带前导ox或0X);“%d”表示输出带符号的十进制整型数。
6有下列程序:
程序执行后的输出结果是( )。
A.45B.20C.25 D.36
参考答案:C
参考解析:在for循环语句中自变量i从0开始,每次自加2,执行s+一*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素,所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。
7若有正确定义语句double x=5.16894:
A.输出格式说明与输出顶不匹配,输出无定值B.5.170000C.5.168000D.5.169000
参考答案:D
参考解析: (x*1000+0.5)--x移动3位小数,加0.5,也就是小数第4位加5,若这位大于等于5,则进1到个位。5.16894*1000-)5168.94+0.5->5169.44接下来:(int)(x*1000+0.5)取整变51 69,5169/(double)1000)-)5.169。所以printf(″%f\n″,5.169)结果是5.16900。因此正确答案为D。
8
A.随机值B.B.0C.x的地址D.p的地址
参考答案:B
参考解析:*p的意思是取其指向地址的内容,p是指向x地址的指针,因此输出*p也就是输出X的内容,即0,故选择B选项。
9有以下程序:
执行后的输出结果是( )。
A.1B.2C.4D.死循环
参考答案:A
参考解析:当k=5时,while条件中的值为4,k为4,循环不成立,k-=3可写成k=k-3,输出1;接着执行--k后k为0,当k=0时,while循环不成立,退出。
10以下四个程序中不能对两个整型值进行交换的是( )。
A.
B.
C.
D
参考答案:C
参考解析:
main()
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |