c语言选择题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 错误的叙述是(A )。
A) 构成c语言源程序的基本单元是算术表达式
B) 若一条语句较长,也可分写在下一行上
C) 一个c语言源程序可由一个或多个函数组成
D) c程序必须包含一个main( )函数
(2)(A )为正确的字符常量。
A) ‘M’
B) "\24m"
C) "\\"
D) "c"
(3) 若变量m,n,t已定义且赋予初值,则正确的表达式是(C )。
A) m=m\2
B) m=int(5.6%4)
C) m=6+n++,m++
D) m=m+1=t-n
(4) 下面的叙述,错误的是(A )。
A) C语言算术运算符不包含模运算符“%”
B) 语言中的表达式求值,是按其运算符的优先级先高后低的次序进行
C) 自增和自减运算符的结合方向为“自右至左”
D) 关系运算符的优先级低于算术运算符
(5) 已有定义char s;使用scanf( )函数输入一个字符给变量s,不正确的函数调用是(C )。
A) scanf("%c",&s);
B) scanf("%u",&s);
C) scanf("%lf",&s);
D) scanf("%d",&s);
(6) 判定逻辑值位“真”的最准确叙述是(B )。
A) 1
B) 非0的数
C) 非0的整数
D) 大于0的数
(7) 设已定义float a=2.0,b=3.0;使a值为5.0的表达式是(B )。
A) a-=b+2.0
B) a+=b
C) a*=b+2.0
D) a/=b+2.0
(8) 以下程序的运行结果是(C )。
Void main()
{
int x,y,z,a;
x=y=z=1;a=15;
if (!x)
a--;
else if (y)
;
if (z)
a=3;
else
a+=4;
printf("%d\n",a);
}
A) 15
B) 14
C) 3
D) 19
(9) 若已定义int a; 不会产生死循环的是(B )。
A) for ( ; ;a+=2);
B) for( ;(a=getchar())!=’\n’; );
C) for(a=10; ;a--);
D) while (-1) {a++;}
(10) 若已定义int x[4]={2,1,3};则元素x[1]的值为(B )。
A) 2
B) 1
C) 0
D) 3
(11) 以下程序段运行后s的值是(A )。
int a[3][3]={3,2,1,3,2,1,3,2,1};
int j,k,p=1;
for (j=0;j<2;j++)
for (k=j;k<3;k++) p*=a[j][k];
A) 12
B) 108
C) 2
D) 18
(12) 设已定义:char s1[8],s2[8]= "Science"; 能将字符串"Science"赋给数组s1的语句是(D )。
A) strcpy(s2,s1);
B) s1="Science";
C) s1=s2;
D) strcpy(s1,s2);
(13) 用数组名作为函数的实参时,错误的说法是(B )。
A) 可以使用指针变量作为形参
B) 定义形参数组时,元素的个数必须与实参相同
C) 可以使用数组名作为形参
D) 实参传递给形参的值是数组的首地址
(14) 以下叙述正确的是(B )。
A) 一个源程序只能由一个编译预处理命令行
B) 编译预处理命令都必须以"#"开头
C) "#define PRICE=30"定义了与30等价的符号常量PRICE
D) 使用带参数的宏定义时,应该说明每个参数的数据类型
(15) 以下程序段运行后,表达式*(p++)的值为(C )。
char a[5]= "work";
char *p=a;
A) ’o’
B) 存放’o’的地址
C) ’w’
D) 存放’w’的地址
(16) 若有以下程序段,则不能正确访问数组元素a[1][2]的是(B )。
int (*p)[3];
int a[][3]={1,2,3,4,5,6,7,8,9};
p=a;
A) p[1][2]
B) p[1]+2
C) (*(p+1))[2]
D) *(*(a+1)+2)
(17) 若有定义:
struct student
{
int num;
char sex;
int age;
} stu1;
下列叙述不正确的是(A )。
A) student是结构体类型名
B) struct student是结构体类型名
C) num,sex,age都是结构体变量stu1的成员
D) stu1是用户定义的结构体类型变量名
(18) 若有以下定义:
Struct node
{
Int data;
Struct node *next;
};
Struct node m,n,k,*head,*p;
已建立如下图所示的链表:
指针head指向变量m,n.next指向变量n,p指向变量k,不能把结点k插到m和n之间形成新链表的程序段是(A )。
A) m.next=p; p->next=head->next;
B) (*head).next=p; (*p).next=&n;