《c 语言模拟考题》
一、选择题。
1、 c语言中, char、 int、 float和double类型的数据分别占用【1】个字节。
【1】 a b c
2、若执行printf("%d", strlen("a\\\x41"))语句其输出结果是 【2】 。
2】 a) 8 b) 7 c) 6 d) 4
3、若int a, b, c; 则表达式(a=2, b=5, b++,a+b)的值是 【3】 。
3】 a) 7 b) 8 c) 6 d) 2
4、以下正确的叙述是 【4】 。
4】 a) 在c语言中,main函数必须位于文件的开头。
b) c语言每行中只能写一条语句。
c) c语言本身没有输入、输出语句。
d) 对一个c语言进行编译预处理时,可检查宏定义的语法错误。
5、若执行以下程序段:
int a=1, b=2, m=2, n=2;
m=a>b)&&n;
则n的值是 【5】 。
5】 a) 1 b) 2 c) 3 d) 4
注:类似的如以下题:
int a=1, b=1, c=0;
if (+a ||b) c=a+b;
printf("a=%d b=%d c=%d", a,b,c);
6、已知各变量的类型如下:
int i=8, a, b;
double x=1.42, y=5.2;
则以下符合c语言语法的表达式是 【6】 。
6】 a) a+=a-=(b=4)*(a=3) b) a=a*3=2
c) x%(-3) d) y=float(i)
7、以下程序的运行结果是 【7】 。
#include <>
main()
int m=5;
if(m++>5) printf("%d", m);
else printf("%d", m++)
7】 a) 7 b) 6 c) 5 d) 4
8、以下程序的运行结果是 【8】 。
#include <>
main()
char c='y';
if(c>='a'&&c<='u') c+=5;
else if(c>='v'&&c<='z') c-=21;
putchar(c);
8】 a) 'y' b) 'd' c) y d) d
9、若定义int i; 则以下循环语句的循环执行次数是 【9】 。
for(i=2; i==0;) printf("%d", i--)
9】 a) 无限次 b) 0次 c) 1次 d) 2次。
10、以下程序的运行结果是 【10】 。
#include <>
main()
int a[4][3]=;
int *p, j;
p=a[0];
printf("%2d,%2d,%2d,%2d", p, *a+3)+2), p[2], p+7));
10】 a) 4, 4, 9, 8 b) 程序出错 c) 1, 10, 12, 8 d) 1, 9, 2, 7
11、以下程序的输出结果是 【11】 。
#include <>
main()
int i=0;
while(1)
printf("");
11】 a) *b) *c) *d) *
12、若定义a[2]=;则a数组中行的大小是 【12】 。
12】 a) 2 b) 3 c) 4 d) 无确定值。
13、要使以下程序中t的输出结果是4,则输入a和b应满足的条件是 【13】 。
#include <>
main()
int s, t, a, b;
scanf("%d%d", a, &b);
s=t=1;
if(a>0) s+=1;
if(a>b) t=s+t;
elseif(a==b) t=5;
else t=2*s;
printf("%d", t);
13】 a) a>0并且a0并且a>b d) a<0并且a>b'
14、以下程序的运行结果是 【14】 。
#include <>
void f(int b)
int i=0;
while(b[i]<=10)
main()
int i, a=
f(a+1);
for(i=0; i<6; i++)
printf("%d ",a[i]);
从第一个元素起到大于10为止,各加2)
14】 a) 2 7 12 11 13 9 b) 1 7 12 11 13 7
c) 1 7 12 11 13 9 d) 1 7 12 9 13 7
15、以下各语句或语句组中,正确的操作是 【15】 。
15】 a) char s[5]="abcde" b) char *s; gets(s);
c) char *s; s="abcde"; d) char s[5]; scanf("%s", s);
16、以下c语言中,对函数不正确的描述是 【16】 。
16】 a) 当用数组名作形参时,形参数组改变可使实参数组随之改变。
b) 允许函数递归调用。
c) 函数形参的作用范围只是局限于所定义的函数内。
d) 被调函数必须在主调函数之前。
17、在循环语句的循环体中,continue语句的作用是 【17】 。
17】 a) 立即终止整个循环。
b) 继续执行continue语句之后的循环体各句。
c) 结束本次循环。
d) 结束本次循环并跳出循环。
18、以下程序的运行结果是 【18】 。
#include <>
main()
char *s="xcbc3abcd";
int a, b, c, d;
a=b=c=d=0;
for(; s; s++)
switch(*s)
printf("a=%d,b=%d,c=%d,d=%d", a, b, c, d);
a='a'的个数、b='b','c'的个数、c='c'的个数、d=非'a'的个数)
18】 a) a=1,b=5,c=3,d=8 b) a=1,b=2,c=3,d=3
c) a=9,b=5,c=3,d=8 d) a=0,b=2,c=3,d=3
19、若fp为文件指针,且文件已正确打开,i为long型变量,以下程序段的输出结果是【19】 。
fseek(fp, 0, seek_end)
i=ftell(fp);
printf("i=%ld", i);
19】 a) -1 b) fp所指文件的长度,以字节为单位。
c) 0 d) 2
20、以下程序的输出结果是 【20】 。
#include <>
int i;
main()
int i=1, j=2;
fun(fun(i, &j), j);
fun(int a, int *b)
static int m=2;
i+=m+a;
m=++b);
printf("%d,%d", i, m);
return (m);
20】 a) 3,3 b) 3,3 c) 3,3 d) 3,3
21、定义compare(char *s1, char *s2)函数,以实现比较两个字符串大小的功能。以下程序运行结果为-32,选择正确答案填空。
#include <>
main()
printf("%d", compare("abcd", abc");
compare(char *s1, char *s2)
while(*s1&&*s2&& 21】 )
return *s1-*s2;
21】 a) *s1!=*s2 b) *s1==*s2 c) *s1=*s2 d) s1!=s2
22、若有以下程序:
#include <>
main(int argc, char *ar**)
while(--argc)
printf("%s", ar**[argc]);
printf("");
逆序参数回送)
该程序经编译和连接后生成可执行文件现在dos提示符下键入s aa bb cc回车,则输出结果是【22】 。
22】 a) aabbcc b) aabbccs c) ccbbaa d) ccbbaas
23、若有定义typedef char string[255]; string s; 则s是 【23】 。
23】 a) 字符指针数组变量 b) 字符数组变量。
c) 字符变量 d) 字符指针变量。
24、以下程序的运行结果是 【24】 。
#include <>
void fun(char *s);
main()
static char str=123";
fun(str);
void fun(char *s)
if(*s)
24】 a) 3 b) 123 c) 1 d) 3
25、判断以下程序段的结果是 【25】 。
#define a 3
#define b(a) (a+1)*a)
int x;
x=3*(a+b(7));
25】 a) 程序错误,不允许嵌套宏定义 b) x=93
c) 语法错误,宏体中不允许带括号 d) x=21
26、以下程序的运行结果是 【26】 。
c语言试卷c
a.p q c.p n1 10 若有说明语句 int a,b,c,d c 则能从键盘读入三个整数分别赋给变量a b c的语句是。a.scanf d d d a,b,d b.scanf d d d a,b,d c.scanf d d d a,b,dd.scanf d d d a,b,d 11 c语言标...
C语言试卷A
青海大学试卷 a卷 系别 班级学号姓名。考试课程 程序设计基础 c 考试日期 2009 年 12月17日。注 所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回。一 填空题 每空1分,共16分 1 整型静态数组没有初始化,也没有赋值,此时数组元素的值均为 0 2 数组在内存中占...
C语言试卷
一 填空共5题 共计10分 第1题 2.0分 题号 339 赋值运算符的结合性是由 右 至 左 第2题 2.0分 题号 925 在c 语言结构化程序中,函数 是程序的基本组成单元 在c 语言的面向对象设计框架中,对象 是程序的基本组成单元。第3题 2.0分 题号 926 c 语言的参数传递机制包括传...