C语言.docx

上传人:b****7 文档编号:26026438 上传时间:2023-06-17 格式:DOCX 页数:34 大小:23.10KB
下载 相关 举报
C语言.docx_第1页
第1页 / 共34页
C语言.docx_第2页
第2页 / 共34页
C语言.docx_第3页
第3页 / 共34页
C语言.docx_第4页
第4页 / 共34页
C语言.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言.docx

《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(34页珍藏版)》请在冰豆网上搜索。

C语言.docx

C语言

信盈达考试中心笔试试题—C语言测试试题

姓名:

____________联系方式:

___________测试成绩:

_____老师评价:

___________

一、填空题(每题2分,共20分)

1.已知unsignedchara=250;

intb=250;则计算:

b=a<<2;后,

a=___250____,b=___1000________。

unsignedchara=250;//11111010

11111010<<2

1111101000----->1000

数据类型:

基本数据类型:

int

按大小:

shortint2字节16位

longint4个字节

int4个字节

按符号:

有符号:

signedint-----缺省,默认为有符号的

无符号:

unsignedint

字符型char1字节

在内存中以整数的形式存储

默认为有符号

float实型----单精度4字节

3.1415-----0.31415

符号位+小数位+指数

double双精度8个字字节

求数据类型所占空间的大小:

sizeof(数据类型/变量名)------关键字

构造数据类型:

结构体数组共用体

指针类型

空类型(void)

-----------------------

位运算符:

<<>>&|~^

数据进行运算之前,需要将数据转换成二进制进行运算

1)按位&

规则:

有0为0,全1为1

chara=0x56//01010110

charb=0x78//01111000

a|b:

-----------------------------

01111110

2)按位|

规则:

有1为1全0为0

3)按位^

规则:

相同为0,相异为1

chara=0x56//01010110

charb=0x78//01111000

a^b:

-------------------------------

00101110

4)按位<<

规则:

整体左移,高位溢出,低位补0

chara=0x56

01011000<<2

4)按位>>

规则:

整体右移,低位溢出,高位补0

chara=0x56//01010110

00010101>>2

数据类型的转换

强制数据类型转换

高精度---》低精度

(int)1.23

floata=12.34

intb;

b=(int)a

自动数据类型转换----》由低精度-->高精度转换

从低到高:

char--short--int--long--float--double

运算符:

1.算数运算符:

+-*/%(求余)

1)/

当除法两边是整数的时候,结果会自动取整

10/3=3

当除法两边有一边是小数的时候,结果会取准确值

10/3.0=3.333333

2)%(求余)

两边都必须为整数

用法:

位数分离

inta=123

a%10----3

a/10%10=2

a/100=1

2.关系运算符:

><>=<=!

===

由关系运算符组成的式子叫做关系表达式

关系表达式的结果只有两种0或1

对于数据来说,只要是一个非0值,条件成立

优先级:

><>=<=高于!

===

3)逻辑运算符:

&&||!

&&

表达式1||表达式2

4)!

!

表达式

单目运算符

优先级:

高于&&高于||

------------------

括号(){}.->

单目运算符~!

++--

指针运算符:

*&

算数运算符

位运算:

<<>>

关系运算符:

位运算符:

&高于^高于|

逻辑算符:

&&高于||

三目运算符:

复合赋值运算符(赋值运算符):

+=-=*=

a+=2;--->a=a+2

逗号运算符

(表达式1,表达式2...表达式n);

前置后置++

++a:

a++:

后置

inta=1,b=2;

intc;

c=a++;//c=1,a=2

c=++b;//c=3,b=3

 

(条件表达式)?

表达式1:

表达式2

------------------------------------------------

2.已知:

inta=5;intb=6;intc=7;intd=8;

求计算表达式(a=c>b)||(d=b>a)后。

a,b,c,d的值分别是__1,6,7,8__________________。

----------------------------------------------

(a=1)||(d=b>a)

3.已知字母a的ASCII码为十进制数97,且设ch为char型变量,

则表达式ch='z'*4;的值为___-24______。

---------------------------------------------

'z'==122*4=488;

charch=488;-128~127

488-256=232-256=-24

---------------------------------------------

字符:

单引号表示

字符串吧:

双引号来表示

字符串:

由多个字符组成

"you"='y''o''u''\0'

"y"='y''\0'

'z'==122*4=488;

charch;

数据溢出:

char:

有符号:

数据是按位存储的

对于有符号的数据来说,最高位---符号位

最高位1---负数

最高位0---正数

最大值:

01111111--------127

最小值:

10000000---------128

无符号:

最大值:

11111111--------255

最小值:

00000000-------0

--------------------------------

数据溢出:

数据从最大值方向溢出,此时,会从最小值开始递增

数组从最小值方向溢出,会从最大值方向开始递增

数据类型决定数据存储范围

4.已知:

inta;scanf("%o",&a);

假设用户输入:

482\n。

则printf("a=%o\n",a);

输出______4______。

printf("格式控制",输出列表)

格式控制:

格式符:

控制数据输出的格式

%d

%f

%s

%u

%c

%o

%x

%p输出地址

格式符跟输出列表在类型数量位置上一一对应

转义字符:

'\n':

回车换行

'\t':

'\r':

回车不换行

'\hhh':

八进制

'\72'-----7*8+2=58

'\xh':

十六进制

格式输入函数

scanf("格式控制",地址列表)

inta;

scanf("%d",&a);

格式控制:

控制数据输入的格式

%d

%f

%s

%u

%c

%o

%x

格式控制符跟取地址列表

原样输入原样输出-----

-------------------------------------------------------

5.已知:

inta=10;intb=20;(a+b,a++,++b);

printf("a=%db=%d\n",a,b);输出___11___21_____。

(a+b,a++,++b);

-----------------------------------------

6.已知:

doublea=10;intb=5;doublec;

c=a%b;程序编译报错的原因是

_变量a为double类型的数据_____________

7.已知有一个二进制数:

0101010111010101,

则其对应的八进制形式为:

___52725_______,

十六进制形式为:

__0x55D5________。

8.堆栈是一组相同相同数据类型数据的集合,

则堆栈的特点是_____先进后出________________。

9.已知队列是一种特殊的线性表,有这自己的独特的特点,

则其特点是______先进先出_______。

10.写出:

0‘0’“0”的区别:

"0"----‘0’'\0'

____________________________________________________________________________________________。

chara[5]={'h','e','l','l','o'};---->字符数组

 

数据类型数组名[长度];

 

数组名[下标]

字符串:

由多个字符来组成

---------------------------------------------------

二、选择题(每题2分,共20分)

1.已知a,b,c都是int类型变量,

其中:

a=8,b=9,c=10,

则表达式:

1<=a的值为(c)

A)真B)假C)1D)0

2.C语言提供的合法的关键字是(d)

A)includeB)publicC)CaseD)do

c++:

switch(整型常量表达式)

{

case整型常量:

语句块;

case整型常量1:

语句块2

...

default:

语句块

}

do

{

//循环体

}while(条件表达式);

while(条件表达式)

{

//循环体

}

inlcude:

文件包含指令

#:

预处理

程序编译的四步:

预处理

编译

汇编

链接

3.在C语言中,若对函数类型未加明显式说明,

则函数的隐含类型是(C)

A)voidB)doubleC)intD)char

-----------------

函数的定义的形式:

函数返回值类型函数名(参数列表)

{

函数体

}

函数说明:

函数返回值类型:

函数要返回的数据类型

void表示函数无返回值

函数名:

代表了函数的入口地址

参数列表:

数据类型参数名

函数名参数名都要符合标识符的命名规则:

标识符的命名规则:

1.由数字,字母,下划线,美元符($)组成

2.开头不能为数字

3.并且不能是关键字

intjc(intn)

{

inti;

ints=1;

for(i=1;i<=n;i++)

s=s*i;

returns;

}

 

4.已知chara=130;printf("%d\n",a);

的输出结果是(B)

A)130B)-126

C)有语法错误,无输出结果D)-1

------------------------

chara;数据存储范围:

-128~127

 

5.若变量a是int类型,并执行了语句:

a='A'+1.6;

65+1.6

则正确的叙述是(D)

A)a的值是字符'C'B)a的值是浮点型

C)不允许字符型和浮点型相加

D)a的值是字符'A'的ASCII值加上1

6.若要求在if后一对圆括号中表示a不等于0的关系,

则能正确表示这一关系的表达式为(D)

A)a<>0B)!

aC)a=0D)a

if(a)

{

//语句块1

}

else

{

//语句块2

}

条件表达式成立的依据:

条件表达式结果为非0值

----------------------------------------------

if语句的嵌套

if(条件表达式1)

{

//语句块1

}

elseif(条件表达式2)

{

//语句块2

}

elseif(条件表达式3)

{

//语句块3

}

else

{

//语句块4

}

 

switch(整型常量表达式)

{

case整型常量:

语句块1;

case整型常量:

语句块2;

case整型常量:

语句块3;

default:

语句块n;

}

----------------------------------

终端输入一个学生成绩:

判断输入的数据是否为成绩

如果不是成绩:

打印数据输入有误,

程序代码结束

显示成绩所处的等级:

等级划分:

90-100A90-99100910

80-89B8

70-79C7

60--69D6

<60成绩不合格

#include

intmain()

{

intn;

while

(1)

{

printf("请输入学生成绩:

");

scanf("%d",&n);

if(n<0||n>100)

{

printf("sorry,数据输入有误!

\n");

return0;

}

n=n/10;

switch(n)

{

case10:

printf("该学生所处的成绩等级是A\n");break;

case9:

printf("该学生所处的成绩等级是A\n");break;

case8:

printf("该学生所处的成绩等级是B\n");break;

case7:

printf("该学生所处的成绩等级是C\n");break;

case6:

printf("该学生所处的成绩等级是D\n");break;

default:

printf("改学生的成绩不合格\n");

}

}

return0;

}

7.若有定义:

inta=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为(B)

A)1.4B)1C)2.0D)2

--------------------------------------------------

inta=8,b=5,c;,执行语句c=1+0.4

 

8.若有以下程序段,intc1=3,c2=2,c3;c3=1.0/c2*c1;

则执行后,c3中的值是(C)

A)0B)0.5C)1D)1.5

-----------------------------------------------------

intc1=3,c2=2,c3;c3=0.5*c1;

9.若有以下定义和语句charc1='b',c2='e';

printf("%d,%c\n",c2-c1,c2-'a'+"A");则输出结果是(D)

A)2,MB)3,E

C)2,ED)输出项与对应的格式控制不一致,输出结果不确定

10.假设有说明语句:

chara='\72';则变量a(A)

A)包含1个字符B)包含2个字符

C)包含3个字符D)说明不合法

三、简答&程序题(每题6分,共60分)

1.我们学习过的9条语句是指那些语句?

并且至少写出3条语句的结构,如while语句:

while(表达式)

{

循环体;

}

--------------------------------------------------------

1254

for(赋值表达式;条件表达式;循环变量表达式)

{

36

//循环体;

}

赋值表达:

执行一次

 

四个跳转语句:

break:

适用于循环switch

作用:

结束循环语句,跳出switch结构

continue语句

适用于循环语句

作用:

结束本次循环

#include

intmain()

{

inti;

for(i=0;i<=6;i++)

{

printf("%d\n",i);

if(i==4)

break;

printf("%d\n",i);

}

}

return:

返回一个数值

结束函数

#include

intpi();

intmain()

{

inti;

ints;

for(i=0;i<=6;i++)

{

printf("%d\n",i);

if(i==4)

continue;

printf("%d\n",i);

}

s=pi();

printf("%d\n",s);

}

intpi()

{

printf("helloworld\n");

return1;

printf("areyouok!

\n");

return2;

}

 

goto语句

真正的跳转语句

语法:

goto标签名

只能在同一个函数进行跳转

#include

intmain()

{

inti;

intsum=0;

for(i=1;i<=100;i++)

sum=sum+i;

printf("%d\n",sum);

}

-------------------------------------

#include

intmain()

{

inti=1;

intsum=0;

mu:

if(i<=100)

{

sum=sum+i;

i++;

gotomu;

}

printf("%d\n",sum);

}

 

2.输入一个不多于5位的正整数,判断他是几位数,

并逆序输出。

#include

intmain()

{

intn;

inta[5];

inti=0;

intcnt=0;

scanf("%d",&n);

//1234

while(n>0)

{

a[i++]=n%10;

n=n/10;

cnt++;

}

for(i=0;i

printf("%d",a[i]);

printf("\n");

}

 

3.编程实现求

1*1*1+2*2*2+3*3*3+....+100*100*100的和。

#include

intmain()

{

inti;

intsum=0;

for(i=1;i<=100;i++)

{

sum=sum+i*i*i;

if(i==100)

printf("%d*%d*%d=",i,i,i);

else

printf("%d*%d*%d+",i,i,i);

}

printf("%d\n",sum);

}

-----------------------------------------

#include

intmain()

{

inti;

intsum=0;

for(i=1;i<=100;i++)

{

sum=sum+i*i*i;

//if(i==100)

//printf("%d*%d*%d=",i,i,i);

//else

//printf("%d*%d*%d+",i,i,i);

}

printf("1*1*1+2*2*2+3*3*3+....+100*100*100=%d\n",sum);

}

4.编程计算1*2*3+3*4*5+.......+99*100*101的值。

 

#include

intmain()

{

inti;

intsum=0;

for(i=1;i<=99;i+=2)

sum=sum+i*(i+1)*(i+2);

printf("1*2*3+3*4*5+...+99*100*101=%d\n",sum);

}

----------------------------------------

终端输入一个整数(任意),输入一个数,控制位数

n=5

a+aa+aaa+aaaa+aaaaa

3,6

3+33+333+3333+33333+333333

ints=0;

intsum=0;

for(i=0;i<5;i++)

{

s=s+a;

sum=sum+s;

a=a*10;

}

-----------------------------

求一个数的阶乘,

显示:

1!

=12!

=1*23!

=1*2*3

1!

=

2!

=

3!

=

4!

=

...

10!

1!

+2!

+3!

+4!

...10!

=

ints=1;

intsum=0

for(i=1;i<=10;i++)

{

s=s*i;

sum=sum+s;

}

5.编写一个函数实现将两个正整数合成一个整型数。

如12和34合成1234。

1234

1200+34

123456

123000+456

---------------------------

#include

inthc(inta,intb);

intmain()

{

intx,y;

intsum;

while

(1)

{

printf("pleaseentertwonumbers:

\n");

scanf("%d%d",&x,&y);

sum=hc(x,y);

printf("%d,%d合成%d\n",x,y,sum);

}

}

inthc(inta,intb)//inta=x,intb=y

{

intc=b;

while(c>0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1