C语言等级考试复习资料
题型一 单项选择题
考点1:运算符与表达式
1. 已知int i=10; 表达式"5<=i<=10"的值是( B ) 。 真为1
(A) 0 (B) 1 (C) 10 (D) 没有正确答案
2. 若变量x和y都为int类型,x=100,y=200,下面程序段的输出结果是(B )。
printf("%d",(x,y)); 没有括号
(A) 200 (B) 100 (C) 100 200 (D) 输出不确定的值
3. 以下程序的输出结果是( D )。
#include "stdio.h"
void main()
{
int a=-1,b=4,k;
k=(++a)&&!(b--<=0);
printf("%d %d %d\n",k,a,b);
}
(A)1 0 4 (B)1 0 3 (C) 0 0 3 (D)0 0 4 i=0时,a=2,先取值后++,f(2),a=3;f函数内a=c++,先取值后++,a=3(这个a的作用于在函数f内,不影响外部的a),c=4,最后的a被return给k;k=3;
i=1时,a=3,先取值后++,f(3),a=4;f函数内a=c++,先取值后++,a=4,c=5,a被return给k,k=4。
i=2时,循环结束。
最后输出k为4
4.下述程序的输出结果是(D )。
#include "stdio.h"
void main()
{
int a[]={7,4,6,3,10};
int m=10,k,*ptr=&a[0];
for(k=0;k<5;k++)
m=*(ptr+k)<m?*(ptr+k):m;
printf("%d\n",m);
} 根据程序要求算得
(A) 10 (B) 4 (C) 6 (D) 3
5.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A )。根据C语言的定义
A) x=y==5; B) x=n%2.0 C) x+n=i; D) x=5=4+1;
6.执行下面程序段,B的值应为(B )。
int x=35;
char z='A';
int B;
B=((x&15)&&(z<'a')); 结果为真就为1
A) 0 B) 1 C) 2 D) 3
7.设a、b都是int型变量,且a、b初始值分别为5和10,则表达式a=a+b++,b+a,b+1的值为(B )。 计算可得
c语言二维数组表示方法 A) 11 B) 12 C) 15 D) 16
8.若以下选项中的变量已正确定义,则正确的赋值语句是(B )。
A) x1=26.8%3 B) x3=0x12 C) 1+2=x2 D) x4=1+2=3
9.表达式((356%100)&&(-1&&1))*10的值为( C )。
A) 0 B) 1 C) 10 D) 560
10.C语言中运算对象必须是整形的运算符是( A )。
(A)% (B)/ (C)= (D)<= 有定义可得
11.设int x=1,y=1;表达式(!x||--y)的值是( A )。 计算等于0
(A)0 (B)1 (C)2 (D)-1
考点2:循环结构
12. 求取满足式12+22+32+……+n2≤1000的n,正确的语句是( A)。
(A) for(i=1,s=0;(s=s+i*i)<=1000;n=i++);
(B) for(i=1,s=0;(s=s+i*i)<=1000;n=++i);
(C) for(i=1,s=0;(s=s+i*++i)<=1000;n=i);
(D) for(i=1,s=0;(s=s+i*i++)<=1000;n=i);
根据题中表达式对应选项满足的循环结构
13. 以下叙述中正确的是( D )。
(A) C语言中所有的循环语句都是先判断条件再执行循环体
(B) break语句只能中断循环
(C) continue 语句可以结束所有的循环
(D)C语言中,任意表达式都可作为循环条件,只要能做出0和非0的判断即可
根据定义判断正误得到
考点3:用户自定义数据类型
14. 设有以下定义:
struct node
{
int data;
struct node *next;
}*p;
则以下的语句中正确的是( B )。
(A) p=malloc(sizeof(struct node))
(B) p=(struct node *)malloc(sizeof(struct node))
(C) *p=(struct node *)malloc(4)
(D) p=(struct node )malloc(sizeof(struct node))
15. 运行以下程序的输出结果为(A )。
# include <stdio.h>
void main()
{
enum color {Black=1,Red,Blue,Green};
enum color c1,c2;
c1=Red; c2=Blue;
printf("%d,%d\n",c1,c2);
函数 fun 的功能是:求出无符号十进制数 n 中包含 0 的个数,及各位数字的最大值
}
(A) 2,3 (B) 1,2 (C) 1,1 (D) 0,-1
16. 根据下面的结构体类型及其结构数组的定义,值等于‘A’的表达式是( D )。
struct season
{
char name[10];
int day;
};
struct season s[4]={“Spring”,90,”Summer”,91,”Autumn”,92,”Winter”,92};
(A) s[3].name[0] (B) s[3].name
(C) s[2].name (D) s[2].name[0]
按照程序算得
17.对于如下枚举类型定义,枚举量Pasica的值为(C )。
enum language{Basic=3,Assembly=6,Ada=100,COBOL,Pasica}
A) 4 B) 7 C) 102 D) 103
18.设有以下定义:
union data
{
int d1;
float d2;
}demo;
则以下叙述中,错误的是(D )。
A) 变量demo与成员变量d2所占的内存字节数相同
B) 变量demo中各成员的地址相同
C) 变量demo和各成员的地址相同
D) 若给变量demo.d1赋89后,demo.d2中的值是89.0
赋值后其中的值应为90
19.设有如下说明
typedef struct
{
int n;
char c;
double x;
}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是( A)。
A)STD s[2]={{1,'A',62}},{2,'B',75}};
B)STD s[2]={1,"A",62,2,"",75}; 格式错位
C)struct s[2]={{1,'A'},{2,'B'}};
D)struct s[2]={{1,"A",62.5},{2,"B",75.0}}
20.若有以下说明和定义
union dt
{
int a;
char b;
double c;
}data;
以下叙述中,错误的是( C)。
A)data的每个成员起始地址相同
B)变量data所占的内存字节数与成员C所占字节数相等
C)程序段:data.a=5;printf("%f\n",data,c);输出结果为5.000000 正确结果应为5
D)data可以作为函数的实参
21.设有如下枚举类型定义:
enum language {Basic=3,Assemble,Ada=100,COBOL,Fortran};
则枚举量Fortran的值为(A )。
A) 102 B) 103 C) 4 D) 7
考点4:宏定义
22. 以下程序的输出结果是( D )。
# include <stdio.h>
# define f(x) x*x
void main()
{
int a=6,b=2,c;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论