C语言概述.docx
《C语言概述.docx》由会员分享,可在线阅读,更多相关《C语言概述.docx(49页珍藏版)》请在冰点文库上搜索。
C语言概述
第一章C语言概述
一、选择题:
(1)能将高级语言编写的源程序转换成目标程序的是
A)编程程序B)编译程序C)解释程序D)链接程序
(2)以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
(3)以下叙述正确的是
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚、具有其他语言的一切优点
(4)在一个C语言程序中
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
(5)一个C程序的执行是从_____。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
二、填空题:
1、C语言程序是由若干个____________________组成,一个____________________是由若干个____________________组成,而____________________是组成C程序的最小模块。
____________________是C程序的基本单位。
2、C语言程序中函数是由若干条____________________组成的,每个____________________是由若干个有序的____________________组成的。
____________________是组成函数的最小元素。
3、main()函数是C语言的____________________函数,它可以放置在程序的____________________位置上,一个C程序中有且只能有____________________个main()函数。
程序总是从____________________开始执行。
4、组成C语言的若干函数是____________________关系。
5、C语言程序的注释是以____________________开头,以____________________结束的。
注释对程序____________________不起任何作用。
6、C语言程序的扩展名是____________________,编译后生成的目标文件的扩展名是____________________,连接后生成的是____________________文件。
7、在TurboC2.0集成开发环境下,功能键F2的作用是____________________,F3的作用是____________________,F10的作用是____________________。
热键ALT+X的作用是____________________。
三、判断题:
1、C语言程序可以由多个文件组成,每个文件中都可以有一个main()函数。
2、C语言程序中对主函数main()放置的位置没有一定要求,放在文件头或文件尾或文件中间都可以。
3、C语言程序一行只能写一个语句。
4、C语言程序中的注释行必须放在程序头。
5、C程序书写时要求每行必须以分号结束。
第二章算法
(1)C语言中用于结构化程序设计的三种基本结构是
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
第三章数据类型,运算符与表达式
一、填空:
(1)以下程序的输出结果是【1】
main()
{unsignedshorta=65536;intb;
printf(“%d\n”,b=a);
}
(2)若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是【2】
c=(a-=(b-5));
c=(a%11)+(b=3);
(3)以下程序的输出结果是【3】
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf(“%d,%d\n”,a,b);
}
(4)下列程序的输出结果是16.00,请填空。
main()
{inta=9,b=2;
floatx=【4】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf(“%5.2f\n”,z);
}
(5)以下程序的输出结果是【5】
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
二、选择:
(1)设有说明语句:
chara=’\72’;则变量a
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法
(2)若变量已正确定义并赋值,下面符合C语言语法的表达式是
A)a:
=b+1B)a=b=c+2
C)int18.5%3D)a=a+7=c+b
(3)C语言中运算对象必须是整型的运算符是
A)%=B)/C)=D)〈=
(4)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是
A)1B)2C)2.0D)2.5
(5)若变量a、iI已正确定义,且i已正确赋值,合法的语句是
A)a==1B)++i;
C)a=a++=5;D)a=int(i);
(6)若有以下程序段,
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是
A)0B)0.5C)1D)2
(7)以下所列的C语言常量中,错误的是
A)0xFFB)1.2e0.5C)2LD)‘\72’
(8)下列选项中,合法的C语言关键字是
A)VARB)cher
C)integerD)default
(9)以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是
A)x/y*zB)x*(1/(y*z))
C)x/y*1/zD)x/y/z
(10)若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是
A)-3B)9C)-12D)6
(11)若有定义:
inta=8,b=5,C;执行语句C=a/b+0.4;后,c的值为
A)1.4B)1C)2.0D)2
(12)若变量a是int类型,并执行了语句:
a=‘A'+1.6;,则正确的叙述是
A)a的值是字符C
B)a的值是浮点型
C)不允许字符型和浮点型相加
D)a的值是字符‘A’的ASCII值加上1。
(13)以下程序段的输出结果是
inta=1234;
printf("%2d\n",a);
A)12B)34
C)1234D)提示出错、无结果
(14)以下选项中不属于C语言的类型的是
A)signedshortimtB)unsignedlongint
C)unsignedintD)longshort
(15)以下选项中合法的字符常量是
A)“B”B)‘\010’
C)68D)D
(16)假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000B)3
C)2.000000D)3.000000
(17)以下合法的赋值语句是
A)x=y=100B)d--;
C)x+y;D)c=int(a+b);
(18)设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是
printf(”%d,%d\n”,x--,--y);
A)10,3B)9,3
C)9,2D)10,2
(19)以下程序的输出结果是
main()
{inta=3;
printf(“%d\n”,(a+a-=a*a));
}
A)–6B)12C)0D)-12
(20)有如下程序
Main()
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是
A)34B)42
C)43D)33
(21)请选出可用作C语言用户标识符的一组标识符
A)void,define,WORD
B)a3_b3,_123,IF
C)FOR,——abc,Case
D)2a,Do,Sizeof
(22)C语言中最简单的数字类型包括
A)整型、实型、逻辑型
B)整型、实型、字符型
C)整型、字符型、逻辑型
D)整型、实型、逻辑型、字符型
(23)C语言提供的合法的数据类型关键字是
A)double
B)short
C)integer
D)Char
(24)C语言中合法的字符常量是
A)'\084'
B)'\X43'
C)'ab'
D)“\0”
(25)若已定义X和Y为double型,则表达式:
x=1,y=x3/2的值是
A)1
B)2
C)2.0
D)2.5
(26)以下选项中合法的实型常数是
A)5E2.0B)E-3C).2E0D)1.3E
(27)以下非法的赋值语句是
A)n=(i=2,++i);B)j++;
C)++(i+1);D)x=j>0;
(28)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A)6.500000B)6C)5.500000D)6.000000
(29)与数学式子对应的C语言表达式是
A)3*x^n(2*x-1)B)3*x**n(2*x-1)
C)3*pow(x,n)*(1/(2*x-1))D)3*pow(n,x)/(2*x-1)
(30)以下选项中,与k=n++完全等价的表达式是
A)k=n,n=n+1B)n=n+1,k=n
C)k=++nD)k+=n+1
(31)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
A)voidB)intC)floatD)double
(32)程序运行后的输出结果是
A)8B)10C)7D)11
(33)下列关于C语言用户标识符的叙述中正确的是
A)用户标识符中可以出现下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
(34)下列关于单目运算符++、--的叙述中正确的是
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
(35)若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
执行后输出结果是
A)0X0B)0x0C)0D)0XABC
(36)有以下程序
main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出的结果是
A)9,2B)10,2C)9,1D)10,1
(37)有以下程序
inta=3;
main()
{ints=0;
{inta=5;s+=a++;}
s+=a++;printf(“%d\n”,s);
}
A)不定值B)4C)3D)1
第四章顺序程序设计
一、填空:
(1)下列程序段的输出结果是【1】
intn=’c’;
switch(n++)
{default:
printf(“error”);break;
case‘a’:
case‘A’:
case‘b’:
case‘B’:
printf(“good”);break;
case‘c’:
case‘C’:
printf(“pass”);
case‘d’:
case‘D’:
printf(“warn”);
}
(2)若有语句
inti=-19,j=i%4;
printf("%d\n",j);
则输出的结果是【2】
(3)若有程序
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入【3】
(4)若有以下程序
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
执行后输出结果是【4】
(5)以下程序:
#include
main()
{charc;
while((c=getchar())!
=’?
’)putchar(--c);
程序运行时,如果从键盘输入:
Y?
N?
<回车>,则输出结果为【5】
二、选择:
(1若变量c为char类型,能正确判断出c为小写字母的表达式是
A)‘a’<=c<=‘z’B)(c>=‘a’)||(c<=‘z’)
C)(‘a’<=c)and(‘z’>=c)D)(c>=‘a’)&&(c<=‘z’)
(2若执行以下程序时从键盘上输入9,则输出结果是
A)11B)10C)9D)8
Main()
{intn;
scanf(“%d”,&n);
if(n++<10)printf(“%d\n”,n);
elseprintf(“%d\n”,n--);
}
(3)有说明语句:
inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a,b,d的语句是
A)scanf("%d%d%d",&a,&b,d);
B)scanf("%d%d%d",&a,&b,&d);
C)scanf("%d%d%d",a,b,d);
D)scanf("%d%d%d",a,b,*d);
(4)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A)INPUTx、y、z;
B)scanf(“%d%d%d”,&x,&y,&z);
C)scanf(“%d%d%d”,x,y,z);
D)read(“%d%d%d”,&x,&y,&z);
(5)以下程序的输出结果是
main()
{charc=’z’;
printf(“%c”,c-25);
}
A)aB)Z
C)z-25D)y
(6)以下程序的输出结果是
#defineM(x,y,z)x*y+z
main()
{inta=1,b=2,c=3;
printf(“%d\n”,M(a+b,b+c,c+a));
}
A)19B)17C)15D)12
(7)已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是
A)scanf(“%2d%2d%2d”,&i,&j,&k);
B)scanf(“%d%d%d”,&i,&j,&k)
C)scanf(“%d,%d,%d”,&i,&j,&k);
D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
(8)设有定义:
longx=-123456L;则以下能够正确输出变量x值的语句是
A)printf(“x=%d\n”,x);B)printf(“x=%1d\n”,x);
C)printf(“x=%8dL\n”,x);D)printf(“x=%LD\n”,x);
(9)若有以下程序:
main()
{intk=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);
}
执行后的输出结果是
A)8,6B)8,3C)6,4D)7,4
(10)若有以下程序段(n所赋的是八进制数)
intm=32767,n=032767;
printf("%d,%o\n",m,n);
执行后输出结果是
A)32767,32767
B)32767,032767
C)32767,77777
D)32767,077777
(11)有以下程序段
intm=0,n=0;charc='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是:
A)10,A,10B)10,a,10C)10,a,0D)10,
第五章选择结构程序设计
一、填空:
(1)表示“整数x的绝对值大于5”时值为“真”的C语言表达式是【1】
(2)若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a
if(aprintf("%d%d%d\n",a,b,c);
}
执行后输出结果为【2】
(3)以下程序运行后的输出结果是【3】
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d,%d\n”,x,y);
}
(4)若有以下程序
main()
{intp,a=5;
if(p=a!
=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【4】
(5)以下程序输出的结果是【5】
main()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
(6)若从键盘输入58,则以下程序输出的结果是【6】
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
二、选择:
(1)有如下程序段
inta=14,b=15,x;
charc=’A’;
x=(a&&b)&&(c<’B’);
执行该程序段后,x的值为
A)tureB)false
C)0D)1
(2)能正确表示逻辑关系:
“a≥=10或a≤0”的C语言表达式是
A)a>=10ora<=0
B)a>=0|a<=10
C)a>=10&&a<=0
D)a>=10‖a<=0
(3)有如下程序
Main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
该程序的输出结果是
A)a=2,b=1B)a=1,b=1
C)a=1,b=0D)a=2,b=2
(4)有如下程序
Main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf(“%f\n”,y);
}
该程序的输出结果是
A)0.000000B)0.250000
C)0.500000D)1.000000
(5)以下程序的输出结果是
A)0B)1C)2D)3
main()
{intx=0.5;charz=’a’;
printf(“%d\n”,(x&1)&&(z<’z’));}
(6)以下程序的输出结果是
main()
{inta=5,b=4,c=6,d;
printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));
}
A)5B)4
C)6D)不确定
(7)以下程序的输出结果是
main()
{inta=0,i;
for(i=0;i<5;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A)31B)13C)10D)20
(8)以下程序的输出结果是
main()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);
}
A)1B)0
C)非0的数D)-1
(9)设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为
A)0B)1C)2D)3
(10)阅读以下程序:
main()
{intx;
scanf(“%d”,&x);
if(x--<5)printf(“%d”,x);
elseprintf(“%d”,x++);
}
程序运行后,如果从键盘上输人5,则输出结果是
A)3B)4C)5D)6
(11)已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是
A)6B)0C)2D)1
(12)有一函数,以下程序段中不能根据x值正确计算出y值的是
A)if(x>0)y=1;
B)y=0;
elsei