c语言期末考试选择题考点

文章目录

本知识点为谭浩强第五版内容

1. 知识点:常量、变量和标识符(P42)

下列定义变量的语句中错误的是______。
A、int int B、double int
C、char For D、float US$
答案:D

2.知识点:赋值表达式(P93)

当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。
A、c=b=a; B、(a=c)‖(b=c);
C、(a=c)&&(b=c); D、a=c=b;
答案:C

3.知识点:简单C语言程序的构成和格式(P57)

以下4个选项中,不能看作一条语句的是______。
A、{;} B、a=0,b=0,c=0;
C、if(a>0); D、if(b==0) m=1;n=2;???
答案:D

4.知识点:实型数据(P39)

以下选项中,不能作为合法常量的是______。
A、1.234e04 B、1.234e0.4
C、1.234e+4 D、1.234e0
答案:B

5.知识点:算术表达式

设int a=12,则执行完语句a+=a-=a*a后,a的值是______。
A、552 B、264 C、144 D、-264
答案:D
赋值表达式从右向左看
详细过程如下

a*a=12*12=144 	a=12
a-=144 a=a-144=12-144=-132	a=-132
a=a+(-132)=-132-132=-264	a=-264 	

复合运算符按顺序运算如-=为先减后等于

6.知识点:整型数据(P44~P50)

在C语言中,不正确的(两字节)int类型的常数是______。
A、32768 B、0 C、037 D、0xAF
答案:A
两字节整型范围-32768~32767之间
AF=175

7.知识点:自加、自减运算符和逗号运算符(P53)

若执下面程序时从键盘上输入5,
main()
{
int x;
scanf("%d",&x);
if(x++>5)printf("%d\n",x);
else printf("%d\n",x–);
}
则输出是______。
A、7 B、6 C、5 D、4
答案:B

8.知识点:局部变量及其作用域和生存期(P201)

下面程序的输出是______。(这题超纲)
fun3(int x)
{
static int a=3;
a+=x;
return(a);
}
main()
{
int k=2, m=1, n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);
}
A、3 B、4 C、6 D、9
答案:C

9.知识点:全局变量及其作用域和生存期(P197)

以下程序的输出结果是______。
int a,b;
void fun()
{
a=100;
b=200;
}
main()
{
int a=5,b=7;
fun();
printf("%d%d\n",a,b);
}
A、100200
B、57
C、200100
D、75
答案:B

10.知识点:调用函数和被调用函数之间的数据传递

有如下程序
int func(int a,int b)
{ return(a+b); }
main()
{
int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
该程序的输出结果是______。
A、12 B、13 C、14 D、15
答案:D
func(x,y)为返回值的数值

11.知识点:函数的调用

有如下程序
long fib(int n)
{
if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{ printf("%ld\n",fib(3)); }
该程序的输出结果是______。
A、2 B、4 C、6 D、8
答案:B

12.知识点:函数的定义和返回值

有以下程序
int f(int a)
{ return a%2; }
main()
{
int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++) d+=s[i];
printf("%d\n",d);
}
程序运行后的输出结果是______。
A、9 B、11 C、19 D、21
答案:A
for(;零为停止非零继续;)满足/不满足=1/0

13.知识点:二维数组的定义和二维数组元素的引用

以下不能正确定义二维数组的选项是______。
A、int a[2][2]={{1},{2}};
B、int a[][2]={1,2,3,4};
C、int a[2][2]={{1},2,3};
D、int a[2][]={{1,2},{3,4}};
答案:D

14.知识点:函数之间对一维数组和数组元素的引用

有以下程序
void sum(int a[])
{ a[0]=a[-1]+a[1]; }
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
sum (&a[2]);
printf("%d\n",a[2]);
}
程序运行后输出结果是______。
A、6 B、7 C、5 D、8
答案:A

15. 知识点:赋值语句

下列语句中符合C语言语法的赋值语句是______。
A、a=7+b+c=a+7; B、a=7+b++=a+7;
C、a=7+b,b++,a+7 D、a=7+b,c=a+7;
答案:D

16.知识点:数据输出

以下程序的输出结果是______。
#include <stdio.h>
main()
{ int a=2,c=5;
printf(“a=%%d,b=%%d\n”,a,c);
}
A、a=%2,b=%5 B、a=2,b=5
C、a=%%d,b=%%d D、a=%d,b=%d
答案:D

17.知识点:数据输入

#include <stdio.h>
main()
{ char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始) ______。
123<回车>
45678<回车>
则输出结果是
A、1267 B、1256 C、1278 D、1245
答案:D

18.知识点:if语句和用if语句构成的选择结构

假定所有变量均已正确说明,下列程序段运行后x的值是______。
a=b=c=0;x=35;
if(!a) x–;
else if(b) ;
if© x=3;
else x=4;
A、34 B、4 C、35 D、3
答案:B

19.知识点:switch语句以及用switch语句和break语句构成的选择结构

有以下程序
main()
{ int k=5,n=0;
while(k>0)
{ switch(k)
{ default : break;
case 1: n+=k;
case 2:
case 3: n+=k;
}
k- -;
}
printf("%d\n",n);
}
程序运行后的输出结果是______。
A、0 B、4 C、6 D、7
答案:D

20.知识点:关系运算和逻辑运算

设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是______。
A、10<a<15
B、a= =11||a= =12||a= =13||a==14
C、a>10 && a<15
D、!(a<=10)&&!(a>=15)
答案:A

21.知识点:条件表达式构成的选择结构

若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式 a<b?a:c<d?c:d 的值是______。
A、1 B、2 C、3 D、4
答案:A

22.知识点:do-while语句和do-while语句构成的循环结构

有以下程序
main()
{ int s=0,a=1,n;
scanf("%d",&n);
do
{
s+=1;
a=a-2;
}
while(a!=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从健盘给n输入的值是______。
A、-1 B、-3 C、-5 D、0
答案:B

23.知识点:for语句和用for语句构成的循环结构

以下程序的输出结果是______。
main()
{ int i, k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3; i++) p[i]=a[i*(i+1)];
for(i=0;i<3; i++) k+=p[i]*2;
printf("%d\n",k);
}
A、20 B、21 C、22 D、23
答案:B

24.知识点:while语句和while语句构成的循环

有以下程序
main()
{
int k=5;
while(–k) printf("%d",k-=3);
printf("\n");
}
执行后的输出结果是______。
A、1 B、2 C、4 D、死循环
答案:A

25.知识点:循环结构的嵌套

以下程序的输出结果是______。
main()
{
int n[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
n[i][j]=i+j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j];
printf("%d \n",n[i][j]);
}
A、14 B、0 C、6 D、值不确定
答案:C

26.知识点:用一个一维字符数组来存放字符串

若有定义和语句:
chars[10]:s=“abcd”;printf("%s\n",s);
则结果是(以下u代表空格) ______。
A、输出abcd B、输出a
C、输出abcduuuuu D、编译不通过
答案:D

27.知识点:用于字符串处理的函数

函数调用:strcat(strcpy(str1,str2),str3)的功能是______。
A、将串str1复制到串str2中后再连接到串str3之后
B、将串str1连接到串str2之后再复制到串str3之后
C、将串str2复制到串str1中后再将串str3连接到串str1之后
D、将串str2连接到串str1之后再将串str1复制到串str3中
答案:C

28.知识点:字符串的输入和输出

以下正确定义字符串的语句是______。
A、char str[]={’\064’};
B、char str="\x43";
C、char str=’’;
D、char str[]="\0";
答案:D

29.知识点:字符串数组

有以下程序
main()
{
char s[]="\n123\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是______。
A、赋初值的字符串有错 B、6,7
C、5,6 D、6,6
答案:C

30.知识点:字符变量

已定义c为字符型变量,则下列语句中正确的是______。
A、c=‘97’; B、c=“97”; C、c=97; D、c=“a”;
答案:C

31.知识点:字符型常量

数字字符 0 的ASCII值为48,若有以下程序______。
main()
{
char a=‘1’,b=‘2’;
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是
A、3,2 B、50,2 C、2,2 D、2,50
答案:C

32.知识点:for循环嵌套

下面程序的功能是输出以下形式的金字塔图案是:

*
***
*****
*******

main()
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=;j++)printf("");
printf("\n");
}
}
在下划线处应填入的是
__。
A、i B、2i-1 C、2*i+1 D、i+2
答案:B

33.知识点:程序分析

有以下程序
main()
{ int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是______。
A、6,1 B、2,1 C、6,0 D、2,0
答案:B

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 20
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxy201008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值