文章目录
- 1. 知识点:常量、变量和标识符(P42)
- 2.知识点:赋值表达式(P93)
- 3.知识点:简单C语言程序的构成和格式(P57)
- 4.知识点:实型数据(P39)
- 5.知识点:算术表达式
- 6.知识点:整型数据(P44~P50)
- 7.知识点:自加、自减运算符和逗号运算符(P53)
- 8.知识点:局部变量及其作用域和生存期(P201)
- 9.知识点:全局变量及其作用域和生存期(P197)
- 10.知识点:调用函数和被调用函数之间的数据传递
- 11.知识点:函数的调用
- 12.知识点:函数的定义和返回值
- 13.知识点:二维数组的定义和二维数组元素的引用
- 14.知识点:函数之间对一维数组和数组元素的引用
- 15. 知识点:赋值语句
- 16.知识点:数据输出
- 17.知识点:数据输入
- 18.知识点:if语句和用if语句构成的选择结构
- 19.知识点:switch语句以及用switch语句和break语句构成的选择结构
- 20.知识点:关系运算和逻辑运算
- 21.知识点:条件表达式构成的选择结构
- 22.知识点:do-while语句和do-while语句构成的循环结构
- 23.知识点:for语句和用for语句构成的循环结构
- 24.知识点:while语句和while语句构成的循环
- 25.知识点:循环结构的嵌套
- 26.知识点:用一个一维字符数组来存放字符串
- 27.知识点:用于字符串处理的函数
- 28.知识点:字符串的输入和输出
- 29.知识点:字符串数组
- 30.知识点:字符变量
- 31.知识点:字符型常量
- 32.知识点:for循环嵌套
- 33.知识点:程序分析
本知识点为谭浩强第五版内容
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