2.下面的变量说明中______C_______是正确的。
A.Char:
a,b,c; B.Chara;b;c;
C.Chara,b,c; D.Chara,b,c
3.main()
{ intn;
( n=6*4,n+6),n*2;
printf(“n=%d\n”,n);
} 此程序的输出结果是______B________.
A.30 B. 24 C. 60 D. 48
4.若有如下定义,则___C_______和_______D__是对数组元素的正确的引用。
。
int a[10] ,*p ;
p=a ;
A. *&a[10] B. a[11] C. *(p+2) D.*p
5.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是___C_______
A. 0 B. 4 C. -4 D. 2
6.表达式y=(13>12?
15:
6>7?
8:
9)的值为____C________.
A 9 B 8 C 15 D. 1
7.若x=5,y=3 则y*=x+5; y的值为___D____________.
A. 10 B. 20 C. 15 D. 30
8.C语言的输入与输出操作是由______C______完成的。
A.输入语句 B.输出语句
C.输入与输出函数 D.输入与输出语句
9.语句 for(k=0;k<5;++k)
{ if(k==3) continue;
printf(“%d”,k);
}的输出结果为______B_____.
A.012 B.0124 C. 01234 D. 没有输出结果
10.从循环体内某一层跳出,继续执行循环外的语句是:
___A________.
A.break语句 B.return语句
C.continue语句 D.空语句。
11.Break语句的正确的用法是______B______.
A.无论在任何情况下,都中断程序的执行,退出到系统下一层。
B.在多重循环中,只能退出最靠近的那一层循环语句。
C.跳出多重循环。
D.只能修改控制变量。
12.两个指针变量的值相等时,表明两个指针变量是______B____.
A.占据同一内存单元。
B.指向同一内存单元地址或者都为空。
C.是两个空指针。
D.都没有指向。
13.不正确的指针概念是_____D_____.
A.一个指针变量只能指向同一类型的变量。
B.一个变量的地址称为该变量的指针。
C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中。
D.指针变量可以赋任意整数,但不能赋浮点数。
14.设charch=‘A’;表达式ch!
(ch>=‘A’&&ch<=‘Z’)?
ch:
(ch+32)的值是_________.
A.A B. a C.Z D. z
15.根据C语言的语法规则,下列_____A__个是不合法标识符。
A.While B.Name C.Rern5 D._exam
16.设单精度变量f,g均为5.0,使f为10.0的表达式是________A__.
A. f+=g B. f-=g+5 C. f*=g-15 D. f/=g*10
2003年10月甘肃省自考C语言程序设计真题
一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其代码填入题干后的括号内。
每小题1分,共20分)
1.程序中定义以下宏 #defineS(a,b) a*b,若定义 intarea;且令area=S(3+1,3+4),则变量area的值为(A)
A10B12C 21D 28
2.正确的标识符是()
AaBa=2 Ca.3 D a_3
3.表达式1&3&5&7的值为(A) A1 B3C5 D7
4.语句printf(″s\\t″)的输出结果为(B) As\\t B s\tC s\D s
5. 执行下列语句中,sum变量的值是(B)
intsum=0
for(inti=0;i<10;i++,sum+=i);
A45B55C 0D编译错误
6.已知有共用体变量data1定义如下:
uniondata
{inti;
charch;
floatf;
}data1;则变量data1所占的内存存储空间可表示为(C)
Asizeof(int) Bsizeof(char)
Csizeof(float)
Dsizeof(int)+sizeof(char)+sizeof(float)
7.若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示
()
A已读到此文件末尾 B未读到此文件的末尾
C此文件已关闭 D此文件尚未被打开
8.以下c语言函数声明中,不正确的是()
Avoidfun (intx, inty); Bfun (intx, inty);
Cintfun (intx,y); Dchar*fun (char*s);
9.下列选项中,不合法的C语言关键字是()
AautoBdefaultCstaticDvar
10.若x=4,则x*=x+2的值为()
A36B24C18D20
11.函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个
数为()
A1B2C4D5
12.设a为5,执行下列语句后,b的值不为2的是()
Ab=a/2Bb=6-(-a)
Cb=a%2Db=a>32:
1
13.假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变
量,则下面各项中正确的是()
Ap2=**p1Bp2=*&p1
Cp2=*p1Dp2=&*p1
14.以下运算符中,运算对象必须是整型的是()
A/B%=C!
=D〈=
15.以下关于typedef的叙述中错误的是()
A用typedef可以增加新的类型
B用typedef可以定义各种类型名,但不能用来定义变量
C用typedef只是将已有的类型用新的标识符来代表
D使用typedef有利于程序的通用和移植
16.若执行完成下列语句:
inta=3,b=6,c;
c=a∧b《2;
则变量c的二进制值为()
A00011100B00010100C0001000D0*******
17.设有定义intx=1; inty=‘a’<‘A’x-:
x++;,则变量y的值是
()
A0B2C1D3
18.以下关于宏替换的叙述不正确的是()
A宏替换只是字符替换 B宏名无类型
C宏替换不占用运行时间 D宏替换不占用编译时间
19. 以下对枚举类型名的定义中正确的是()
Aenums={a,b,c}Benums{a=9,b=2,c}
Cenums={′a′, ′b′, ′c′}
Denums{′a′, ′b′, ′c′}
20. 假设指针p已经指向某个整型变量x,则*p相当于()
A&xB&pCxD*x 1.A 2.D 3.A 4.B 5.B 6.C 7.A 8.C
9.D 10.B 11.B 12.C 13.D 14.B 15.A 16.D
17.C 18.D 19.B 20.C
二、多项选择题(在每小题的五个备选答案中,选出二至五个正确答案,并将其代码填写在题干后的括号内;错选、多选不得分。
每小题2分,共10分)
1.C语言中的文件类型有()
A索引文件 B文本文件CASCII文件
D二进制文件E随机文件
2. 以下关于C语言中循环的描述正确的是()
A在while和do-while循环体内应包含使循环趋于结束的语句
Bdo-while的循环体不能是复合语句
Cdo-while的循环体至少无条件执行一次
D在for循环中可以使用break语句跳出循环体
Efor循环只能用于循环次数已经确定的情况
3. 合法的变量名有()
我们从小学、中学到大学,学的知识总是限制在一定范围内,缺乏在商业统计、会计,理财税收等方面的知识;也无法把自己的创意准确而清晰地表达出来,缺少个性化的信息传递。
对目标市场和竞争对手情况缺乏了解,分析时采用的数据经不起推敲,没有说服力等。
这些都反映出我们大学生创业知识的缺乏; Aa_1_2Bb2C_abcDABCE$1
4. 整型变量的类型标识符是()
2、消费者分析 AshortBlongCUnsignedint
秘诀:
好市口+个性经营 DintEchar
成功秘诀:
好市口+个性经营 5. 以下叙述中正确的是()
300-400元1632% A一个C语言程序有且仅有一个main函数
5、就业机会和问题分析 BC语言程序中,main函数是没有参数的
C一个函数通过其他函数间接的调用了自身,这种情况也是一种递归
调用
Dmain函数是由系统调用的
E若要通过函数参数带回一个或多个返回值,则应使用按地址传送的参数结合方式
三、判断题(认为对的,在题后的括号内打″√″,认
为错的打″×″。
每小题1分,共6分)
1.若有说明intc;则while (c=getchar());是错误的C语句。
()
2.C语言中,共用体类型的变量在程序运行期间,所有成员都在内存中。
()
3.在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效。
()
二、资料网址:
4.C语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。
()
5.使用continue和break语句,都可以使得C程序的执行直接从循环中跳出。
()
6.若a为一维数组名,则*(a+i)与a[i]等价。
()
3.www。
oh/ov。
com/teach/student/shougong/ 四、阅读程序,将程序运行结果填写到题后的横线上(每小题5分,共25分)
4、“体验化”消费1.#include″stdio.h″
main()
{ staticcharstr[]=″Language″;
char*s=&str[8];
while(--s>=&str[0])putchar(*s);
putchar(′\n′);
}
输出结果:
___________________________
2.main()
{inta[6]={12,4,17,24,27,16};
intb[6]={27,13,4,25,23,16};
for(inti=0;i<6;i++)
{ for(intj=0;j<6;j++)
if(a[i]==b[j])
break;
if(j<6)printf(″%d″,a[i])
}
}
输出结果:
_____________________________
3. #include
intmian()
{ inti=0,sum=0;
while
(1)
{ sum+=i;
i++;
if(i>5)break;
}
printf(″sum=%d\n″,sum);
}
程序运行结果:
4. intfun(intn)
{if(n>0)
returnn*fun(n-1);
else
return1;
}
main()
{ inta=fun(4);
printf(″a=%d\n″,a);
}
程序运行结果:
____________________
5. fun(inti)
{ staticints=3;
s+=i
return(s);}
main()
{inta=2,b=1,s;
s=fun(a);s=fun(b);
printf(″%d\n″,s);}
程序运行结果:
____________________
五、程序填空题(根据题意要求,将程序补充完成。
每
空2分,共22分)
1.以下程序输入整数a,b的值,然后交换a,b的值,并输出交换后的结果。
Vodiswap(①_________________)
{ intt;
t=*a;
②__________________
③__________________
}
main()
{ inta,b;
scanf(″%d,%d″,&a,&b);
④_____________________
printf(″a=%d,b=%d″,a,b);
}
2.以下程序的功能是:
从键盘输入一串字符(以回车换行符结束),统计
其中小写英文字母的个数,将结果保存在变量count中。
main()
{
int①__________________;
charc;
②______________________
while(c!
=′\n′)
{
if(③______________________)
④______________________;
c=getchar();
}
printf(″havetyped%dlowerletters″,count);
}
3.下面程序的功能是用函数递归方法计算菲波那契数列,请填空完善之。
main()
{ intn,m;
scanf(″%d″,&n);
m=①__________________;
printf(″%d″,m);
}
intfibo(n);
intn;
{ if(n==1)②___________________;
elseif(n==2)return
(1);
elsereturn(③_________________);
}
六、编程题(第1小题8分,第2小题9分,共17分)
1.求出10至1000之内能同时被2、3、7整除的数,并输出。
2.输出整数n,求表达式
的值。
要求,程序中求2x的功能部分必须在一函数中完成,函数名使
用expt。
9、如果你亲戚朋友送你一件DIY手工艺制品你是否会喜欢?
试题参考答案及评分标准
一.单项选择题(每小题1分,共20分)
1.A 2.D 3.A 4. B 5.B 6.C 7.A 8.C
9.D 10.B 11.B 12.C 13.D 14.B 15.A 16.D
17.C 18.D 19.B 20.C
二.多项选择题(错选、多选不得分。
每小题2分,共10分)
1.BCD 2.ACD 3.ABCD 4.ABCD 5.ACDE
三.判断题(每小题1分,共6分)
1.× 2.× 3.√ 4.√ 5.× 6.√
四、阅读程序,将程序运行结果填写到题后的横线上(每小题5分,共25分)
1.egaugnal 2.4 27 16 3.15 4.24 5.6
五.程序填空题(每空2分,共22分)
1.① int*a,int*b ② *a=*b; ③ *b=t; ④ swap(&a,&b);
2. ① count=0 ② c=getchar();(或scanf″%c″,&c);)
③ c>=′a′&&c<=′z′ ④ count++;
3. ① fibo(n) ②return(o) ③fibo(n-2)+fibo(n-1)
六.编程题(第1小题7分,第2小题8分,共15分)
1.main()
{ inti;
for(i=10;i<=1000;i++)
if(i%2==0&&i%3==0&&i%7==0)
printf(″%5d″,i);
}
2.#include
floatexpt(intn)
{ floatr=1;
if(n>0)
for(inti=0;i returnr:
}
main()
{intn;
floatsum=0;
scanf(″%d″,&n);
for(inti=0;i<=n;i++)
for(intj=0;j<=i;j++)
sum+=expt(j);
printf(″%f″,sum);
}
发表于@2007年10月28日 08:
42:
00 | 评论( 1 ) | 举报| 收藏
旧一篇:
计算机类期刊投稿心得 | 新一篇:
C语言学习总结