C语言开发基础(习题卷77)
第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]已知有预处理命令#include<stdio.h>和声明“char ch[10]= "Good luck.";int i;”,要求输出字符串“Good luck.”,下面选项中不能达到该要求的语句是_________。
A)Puts(ch);
B)Printf("%s",ch[10]);
C)For(i=0;ch[i]!='\0';i++) printf("%c",ch[i]);
D)For(i=0;ch[i]!='\0';i++) putchar(ch[i]);
答案:B
解析:
2.[单选题]执行以下语句后a的值为 。int a=5,b=6,w=1,x=2,y=3,z=4; (a=w>x)&&(b=y>z);
A)5
B)0
C)2
D)1
答案:B
解析:
3.[单选题]有程序: main()
{int a=5,b=1,c=0;
if (a=b+c) printf("***\n");
else printf("$$$\n");}
该程序。
A)有语法错误不能通过编译
B)可以通过编译,但不能通
过连接
C)输出: ***
D)输出: $$$
答案:C
解析:
4.[单选题]执行以下程序后,输出结果是______。
#include<stdio.h>
Void fun(int b[], int i)
{
B[i]=10;
}
Void main( )
{
Int x, a[]={2, 3, 4, 5, 6, 7, 8, 9};
Fun(a, 3);
Printf("%d", a[3]);
}
A)2
C)5
D)10
答案:C
解析:
5.[单选题]( )为正确的用户标识符。
A)1_row
B)min-5
C)union
D)m_A_1
答案:D
解析:P14 变量名的命名规则。只能用数字,英文字母,下划线。
6.[单选题]下列语句组中正确的是()。
A)char * s;s={“BOOK”};
B)char * s;s=“BOOK”;
C)char s[10];s=“BOOK!”;
D)char s[]; s=“BOOK!”;
答案:B
解析:
7.[单选题]以下程序段运行的结果是( )。char a[3][8]={"work","study","happy"};char
(*p)[8];p=a;printf("%s",p[1]);
A)work
B)study
C)w
D)s
答案:B
解析:
8.[单选题]以下选项中,当x为大于1的奇数时,值为0的表达式是
A)x\2
B)x%2==0
C)x%2!=0
D)x%2==1
答案:B
解析:
9.[单选题]有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值为( )。
A)17
B)17.500000
C)17.5
D)16
答案:A
解析:
10.[单选题]以下数组定义中不正确的是___(  )___.
A)int a[2][3];
B)int b[][3]={0,1,2,3};
C)int c[100][100]={0};
11.[单选题]在执行语句: int a[ ][3]={1,2,3,4,5,6}; 后,a[1][0]
的值是___(  )___.
A)4
B)1
C)2
D)5
答案:A
解析:
12.[单选题]下面程序输出的结果是___(  )___.
#include <stdio.h>
void main( )
{ int i,j,x=0;
static int a[6]={1,2,3,4,5,6};
for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j];
printf("%d\n",x);
}
A)数组a中首尾的对应元素的乘积
B)数组a中首尾的对应元素的乘积之和
C)数组a中相邻各元素的乘积
D)数组a中相邻各元素的乘积之和
答案:D
解析:
13.[单选题]若已定义int a;下面对(1)(2) 两个语句的正确解释是。
(1)int *p=&a; (2)*p=a;
A)语句(1)和(2)中的*p 含义相同,都表示给指针变量p 赋值
B)(1)和(2)语句的执行结果,都是把变量a 的地址赋给指针变
量p
C)(1) 在对p 进行说明的同时进行初始化,使p 指向a
(2)将变量a 的值赋给指针变量p
D)(1) 在对p 进行说明的同时进行初始化,使p 指向a
(2)将变量a 的值赋给*p
答案:D
解析:
14.[单选题]有以下函数
此函数的功能是()
A)比较p和q所指字符串的大小
B)计算p和q所指字符串的长度差
C)将q所指字符串连接到p所指字符串后面
D)将q所指字符串复制到p所指字符串中
答案:A
解析:函数fun接收两个整型指针变量作为参数,通过 while循环,比较p和q对应位上的各个字符,如果字符相同,继续向后比较;否则循环结束,返回第一次对应不同字符的ASC码差值,所以函数fun是对p和q指向的字符串进行比较,比较的大小是按第一个对应位置上不同字符的ASC码值;本题答案A
D)记录
答案:D
解析:A项,一个数据库由一个文件或文件集合组成,这些文件中的信息可分解成一个个记录;B项,数据库是数据的集合;C项,字 段是实体属性的描述;D项,在关系数据库中,使用记录作为存取一个实体信息的数据单位。答案选择D选项。
16.[单选题]设x和y均为int型变量,则语句x+=y; y=x-y; x-=y;的功能是( )。
A)把x和y按从大到小排列
B)把x和y按从小到大排列
C)无确定结果
D)交换x和y中的值
答案:D
解析:
17.[单选题]设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。若T=R×S,则T的元组的个数为( )。
A)6
B)8
C)9
D)12
答案:C
解析:R为n元关系,有p个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的 个数为9个。答案选择C选项。
18.[单选题]一棵二叉树共有25个结点,其中5个叶子结点,那么度为1的结点数为( )。
A)4
B)6
C)10
D)16
答案:D
解析:根据二叉树的性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以度为2的结点数为4个,那么25- 5-4=16即为度为1的结点数。答案选择D选项。
19.[单选题]有以下程序(说明:字母A的ASCII码值是65, #include void fun(char *s) { while(*s) { if(*s%2)
printf("%c",*s); s++; } } void main() { char a[]="BYTE"; fun(a); printf("\n"); }程序运行后的输出结果是( )。
A)BY
B)BT
C)YT
D)YE
答案:D
解析:
20.[单选题]以下函数的返回类型是______。fff(float x){ return 5.86;}
A)与参数x的类型相同
B)void 类型
C)int类型
D)无法确定
21.[单选题]将C源程序进行____可得到目标文件
A)编辑
B)编译
C)连接
D)拼接
答案:B
解析:
22.[单选题]下面选项中的程序段,没有编译错误的是
A)char*sp,s[10];sp=“Hello”;
B)char*sp,s[10];s=“Hello”;
float()函数
C)char str1[10]=“computer”,str2[10];str2=str1;
D)char mark[];mark=“PROGRAM”;
答案:A
解析:
23.[单选题]对于if(表达式)语句,以下说法正确的是()
A)“表达式”的值只能是整数值
B)在“表达式”中不能调用返回整数的函数
C)在“表达式”中不能含有函数调用
D)“表达式”可以是算术表达式
答案:D
解析:C语言规定,if(表达式)语句中的“表达式可以是关系表达式、逻辑表达式,甚至是数值表达式,
允许函数调用,但调用函数的返回值必须符合要求,因此选项A、B、C错误,选项D正确;本题答案为D
24.[单选题]在c语言中,要求运算数必须是整型的运算符是________。
A)/
B)++
C)!=
D)%
答案:D
解析:
25.[单选题]关于C语言的变量名,以下叙述正确的是( )。
A)变量名不可以与关键字同名
B)变量名不可以与预定义标识符同名
C)变量名必须以字母开头
D)变量名是没有长度限制的
答案:A
解析:合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是指被C语言保留的,不 能用作其他用途的标识符,它们在程序中都代表着固定的含义,用户不可重新定义,A项正确、BC两项错误。变量名没有长度 限制,但不可超过编译器可以辨识的范围,D项错误。答案选择A选项。
26.[单选题]有两个关系R、S如下: 由关系R通过运算得到关系S,所使用的运算为( )。
A)选择
B)投影
C)插入
D)连接