大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx

上传人:b****4 文档编号:8289174 上传时间:2023-05-10 格式:DOCX 页数:16 大小:25.28KB
下载 相关 举报
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第1页
第1页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第2页
第2页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第3页
第3页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第4页
第4页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第5页
第5页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第6页
第6页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第7页
第7页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第8页
第8页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第9页
第9页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第10页
第10页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第11页
第11页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第12页
第12页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第13页
第13页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第14页
第14页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第15页
第15页 / 共16页
大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx

《大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

大一期末C语言程序设计基础题库与总结复习资料Word格式文档下载.docx

C语言只有八、十、十六进制,八进制规定要以0开头,十六进制要以0x开头

定义不同类型的变量时应用分号

填空题

&

是地址运算符,&

a是指变量a的内存地址。

Scanf函数中的“格式字符”后面应该是变量地址,而不是变量名。

若想输出字符%,则应该在“格式字符”的字符串中用连续2个%号表示。

1、C语言只有32个关键字和9种控制语句。

2、每个源程序有且只有一个main函数,系统总是从该函数开始执行C语言程序。

3、C语言程序的注释可以出现在程序中的任何地方,它总是以\*符号作为开始标记,以*/符号作为结束标记。

4、输入操作是由库函数scanf完成的,输出操作是由库函数printf完成的。

5、系统默认的C语言源程序文件的扩展名是.c,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe。

(1)C语言中,数组的各元素必须具有相同的,元素的下标下限为,下标必须是正整数、0、或者。

但在程序执行过程中,不检查元素下标是否。

数据类型,0,符号常量,越界

(2)C语言中,数组在内存中占一片的存储区,由代表它的首地址。

数组名是一个常量,不能对它进行赋值运算。

连续,数组名,地址

(1)变量的作用域主要取决于变量,变量的生存期既取决于变量,又取决于变量。

所处的位置,所处的位置,存储类型

(2)说明变量时,若省略存储类型符,系统默认其为存储类别,该存储类别的类型符为:

动态,auto

(3)静态型局部变量的作用域是,生存期是。

它所在的局部,整个程序

(5)函数的形式参数的作用域为,全局的外部变量和函数体内定义的局部变量重名时,_________变量优先。

该函数中,局部

(6)若自定义函数要求返回一个值,则应在该函数体中有一条语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符。

return,void

(7)若函数的形式参数是指针类型,则实参可以是或。

指针,数组名

第二章算法

2.4算法的特性

有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性

第三章顺序程序设计

3.2.1常量和变量

常量:

整型;

实型:

e、E前后必须有数字,后必须为整数,正负;

字符(普通字符、转义字符):

单撇号(好像是字符常量的话必须用);

字符串:

双撇号;

(字符常量占1个字节,字符串常量占n+1个字节,因为有系统的字符串终止符\0。

符号:

用#define指令,用一个符号名称代表一个常量。

变量:

先定义后使用

1.下列定义变量的语句中错误的是______。

A、int_intB、doubleint_

C、charForD、floatUS$

答案:

D【变量命名只能含字母、下划线、数字(不能开头),D中含特殊字符】

用户标识符

标识符:

标识符分为关键字、预定义标识符、用户标识符。

关键字不可作用户标识符符号:

如if,for,while,int,default,但If、IF、Main、Double可以用

预定义标识符可做用户标识符:

define,scanf,printf,include。

用户标识符只能含字母(区分大小写)、下划线、数字(不能开头)。

一般变量名小写,符号常量命名大写。

Void可以

3.以下4组用户定义标识符中,全部合法的一组是______。

A、_mainincludesin

B、If-maxturbo【负号开头】

D、intk_2_001?

?

【int】

A

6.以下有4组用户标识符,其中合法的一组是______。

C、f2_G3IFabc

D、WORDVoiddefine

C

转义字符

\o输出形式是八进制码

\xh输出形式是十六进制码

\’输出单撇号字符

3.2.2数据类型

C语言三种基本类型数据类型包括______。

整型(整数)、实型(浮点型数据)、字符型

【没有逻辑类型也没有集合类型】

3.2.3整型数据

低类型会转化为高类型

int的取值范围-32768到32767

整型一般是4字节

40.inti=65536;

printf("

%d\n"

i);

上面程序片段的输出结果是______。

A、65536B、0C、有语法错误,无输出结果D、-1

B

45.在C语言中,合法的长整型常数是______。

A、0LB、4962710

C、324562&

D、216D

A【以l或L结尾的是长整型常数】

3.2.4字符型数据

ASCII:

数字字符0对应48,数字字符1→49,A→65,a→97,英文字符对应的ASCII码从65~90,97~122

在输出字符变量的值时,可以控制d、c来选择以整数形式或字符形式输出。

1字节

21、若有说明语句:

charc='

\72'

则变量c在内存占用的字节数是

(1)。

309.已定义c为字符型变量,则下列语句中正确的是______。

A、c='

97'

;

【数字字符只有0~9】B、c="

97"

C、c=97;

D、c="

a"

(9)设有定义:

chars[12]="

string"

则printf("

%d\n"

sizeof(s));

的输出是(D)。

A.6B.7C.11D.12

3.2.5实型数据(浮点型数据)

实型变量:

(1)单精度型float4字节用%f

(2)双精度型double8字节用%lf

实型变量的输入格式是%f也可以是%nf,n代表小数点后保留的位数。

28.以下符合C语言语法的实型常量是______。

B、3.14159EC、.5E-3D、E15

C【0.1可以写成.1】

3.3运算符和表达式

强制类型转换是(int)a

逗号运算符的级别最低,赋值的级别倒数第二

50.

main()

{

chara1='

M'

a2='

m'

%c\n"

(a1,a2));

}

则程序输出小写字母m。

(输出最后一个值)

3.4.2赋值表达式

赋值符号“=”是赋值运算符,它将数据赋给变量。

赋值运算符将变量和表达式连接,称为“赋值表达式”。

等号左边是“左值”,必须是变量不是表达式,如a+b不可以,左、右值都可以是右值。

表达式可以是赋值表达式:

a=(b=5),因为赋值运算符遵循从右至左,因此等价于a=b=5。

定义时不可以连续赋值,赋值语句可以连续赋值

12.以下选项中非法的表达式是___D___。

A、0<

=x<

100B、i=j==0C、(char)(65+3)D、x+1=x+1

15.若各变量已正确赋值,则下列选项中正确的表达式是___C___。

A、a=a+b=b++

B、w%((int)a+b)

C、(c+w)%(int)a

D、w=a=b;

【加了分号是赋值语句,不是表达式】

17.若变量a、i已正确定义,且i已正确赋值,合法的语句是___B___。

A、a==1B、++i;

C、a=a++=5;

D、a=int(i)(i的字符型不确定);

3.5数据的输入输出

Scanf:

scanf函数中的格式控制后面是变量地址。

有逗号就有逗号(在格式控制字符串中除了格式声明外还有其他字符,则在输入数据时也应在对应位置上输入相同字符)。

用%c格式声明输入字符时,空格字符和转义字符中的字符都作为有效字符输入,因此输入时不要有空格。

Scanf和gets:

如果键入goodgood,则

Scanf接收good,gets接收goodgood

在输入数值数据时,遇到空格、回车、tab或非法字符都认为该数据结束。

如:

Scanf:

(“%d,%c,%f”,&

a,&

b,&

c);

若输入1234a123o.26,得a是1234,b是a,c是123

3.5.3输出

d格式符:

输出一个有符号的十进制整数(长整型用%ld,双长整型用%lld)

c格式符:

输出一个字符(一个整数在0~127范围也可以用%c使之按字符形式输出)

s格式符:

输出一个字符串

f格式符:

输出实数(%f不指定输出数据的长度,系统一般是小数输出六位,即使之前定义是双精度型)

e格式符:

%e指定以指数形式输出实数

第四章选择结构

4.3关系运算符和关系表达式

14、设a=1,b=2,c=3,d=4,则表达式:

a<

b?

a:

c<

d?

d的结果为

(1)。

三目运算符从右到左运算,先把第一个冒号右边看成整体

4.4逻辑运算符和逻辑表达式

值为非0时被认为是真,包括字符的ASCII值。

if语句中表达式可以是任何数值表达式,因为可以判断真假。

=是赋值,==是等号

逻辑运算符两侧运算对象的数据类型是任何类型数据。

第五章循环结构

在while循环和dowhile循环中,只要在while后面的括号内指定循环条件,因此循环体中包含使循环趋于结束的语句。

同理for的表达式3也是

261.

下列程序的输出结果是___1___。

main()

{inti,j,m=0,n=0;

for(i=0;

i<

2;

i++)

for(j=0;

j<

j++)

if(j>

=i)

m=1;

【if就到这了】

n++;

%d\n"

n);

【好像前面那一大段与后面的无关,要看到从哪到哪】

254.

t为int类型,进入下面的循环之前,t的值为0

while(t=1)

{……}

则以下叙述中正确的是___B___。

B、循环控制表达式的值为1

C、循环控制表达式不合法

258.

intk=0;

while(k=1)k++;

while循环执行的次数是无限次。

12.

下面程序的输出是___-1___。

{intx=2;

while(x--);

x);

【到0才停,自减放在后面,所以是-1】

4.7switch多分支选择结构

只可以和break使用,没有continue

必须要有break,不然后面的也会输出(注意判断题)

5.3do-while

特点:

无条件的执行循环体,再判断循环条件是否成立。

在do-while循环体中,while表达式后面要有分号。

使用whiledo-while循环时,循环变量初始化的操作应在循环语句之前完成

5.4for

三个表达式都可以省略。

5.7break和continue

break:

其作用是使流程跳到循环体之外(跳出包含该break语句的所有循环),执行循环体下面的语句。

Break只能用于循环语句和switch语句。

continue:

其作用为结束循环体下面的语句,执行下一次语句。

(若满足if的条件,则跳过)

第六章利用数组处理批量数据

6.1一维数组

常量表达式中可以包括常量和符号常量,如inta【3+5】是合法的,但是不能用动态定义,如输入。

在对数组全部赋初值时,数组的个数已经确定,可以不指定数组长度。

(10)合法的数组定义是()。

A

A.chara[]="

string"

;

D.chara[]={0,1,2,3,4,5}【类型】

6.3字符数组

字符数组的输入输出:

%c:

逐个字符输入输出

%s:

整个字符串一次输入或输出

puts:

将字符串输出到终端。

如str是一个字符数组名,且初始化为China,则puts(str)输出China。

【字符串可包含转义字符】

gets:

同puts,用来输入。

可以有空格

-----以上都只能输入输出一个字符串,括号里面不能有两个-----

Strcat:

连接【字符数组1必须足够大,以便容纳连接后的字符串】

Strcpy、strncpy:

复制2到1

【字符数组1必须足够大,以便容纳被复制的字符串2】

【字符数组1必须写成数组名形式,字符串2可以是字符数组名或字符串常量】

【strncpy是将2中前n个字符复制,如写成strncpy(str1,str2,2)】

Strcmp:

比较大小。

小写的大。

写成strcmp(str1,str2)

Strlen:

字符串长度

Strlwr:

转化成小写

Strupr:

转化成大写

数组长度:

Chara[]={‘a’,’b’,’c’};

数组长度为3,字符串长度不定,sizeof(a)为3

Chara[5]={‘a’,’b’,’c’};

数组长度为5,字符串长度为3,sizeof(a)为5

(8)设有定义:

则printf("

strlen(s));

的输出是6。

(12)下列语句中,正确的是()。

D

B.chara[][3]={'

abc'

'

1'

};

D.chara[][3]={"

"

1"

(9)staticcharc[]={'

a'

'

'

'

b'

o'

k'

\0'

与staticcharc[]={'

等价。

(×

305.main()

chars[]="

\n123\\"

【\是转义字符,所以共有5个字符,\n,1,2,3,\\】

%d,%d\n"

strlen(s),sizeof(s));

[sizeof还要加一个\0]

执行后输出结果是___5,6___。

第七章用函数实现模块化程序设计

5、下列说法中错误的是(D)。

A.主函数可以分为两个部分:

主函数说明部分和主函数体

B.主函数可以调用任何非主函数的其他函数

C.任何非主函数可以调用其他任何非主函数

D.程序可以从任何非主函数开始执行

)(3)在C的函数中,最好使用全局变量。

【尽可能定义内部变量,少使用全局变量】

(√)(5)所有函数定义都是并行的,相互独立的。

主函数main中定义的变量在整个文件或程序中有效(×

7.2怎样定义函数

定义函数:

指定函数的名字,以便以后按名调用。

指定函数的类型,即函数返回值的类型。

指定函数的参数的名字和类型,以便在调用函数时向他们传递数据。

对无参函数不需要这项。

指定函数功能(最重要的)。

定义空函数作用:

程序结构清楚,可读性好,以后扩充新功能方便

(2)函数在定义时,省略函数类型说明符,则该函数值的类型为int。

92.以下函数值的类型是___int___。

fun(floatx)

floaty;

y=3*x-4;

returny;

7.3调用函数

(对于不带回值的函数,应用void类型)

实参:

在主调函数中调用一个函数时,括号中的参数

形参:

定义函数时括号中的变量

实、形参类型一致,字符型和int型通用

数据传递:

调用函数时,实参的值传递给被调用函数的形参。

调用结束,形参单元释放,实参单元保留并维持原值。

实→形:

值传递,单向传递。

函数的返回值:

函数的返回值是通过函数中的return语句获得的。

被调函数返回给主调函数的值称为C。

形参B.实参C.返回值D.参数

(8)函数调用可以作为一个函数的形参。

【返回值存在寄存器中,没有地址,不能作为形参,可以作为实参】

被调函数调用结束后,返回到D

D.主调函数中该被调函数调用语句的后一语句?

(2)以下函数,真正地没有返回值。

B

A.inta(){inta=2;

return(a);

}B.voidb(){printf("

c"

);

C.inta(){inta=2;

returna;

}

※(7),可以不进行函数类型说明。

D

A.被调函数的返回值是整型或字符型时B.被调函数的定义在主调函数定义之前时

C.在所有函数定义前,已在函数外预先说明了被调函数类型D.以上都是

(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是。

A.return这两个数B.形参用两个元素的数组

C.形参用两个这种数据类型的指针D.用两个全局变量

83.设函数fun的定义形式为

voidfun(charch,floatx){……}

则以下对函数fun的调用语句中,正确的是___D___。

A、fun("

abc"

3.0);

B、t=fun('

D'

16.5);

C、fun('

65'

2.8);

D、fun(32,32);

函数调用可以作为独立的语句存在(√)

7.5函数的嵌套调用

函数不能嵌套定义,可以嵌套调用

函数调用可以在D

A.函数表达式中B.函数语句中C.函数参数中D.以上都是

99.下列叙述中正确的是___D___。

B、C语言的子程序有过程和函数两种【没有过程只有函数】

C、C语言的函数可以嵌套定义

D、C语言所有函数都是外部函数

7.6函数的递归调用

定义:

在调用一个函数的过程中直接或间接调用该函数本身

7.7数组作为函数参数

(10)定义函数时,形参的类型说明可以放在函数体内。

【类型说明放在形参表列内说明,或放在函数定义的第二行】

可以是常量,变量,表达式,函数

局部变量。

离开函数不可使用,只有在被调用时才分配内存单元

数组元素:

作函数实参,不能作形参。

因为形参是在函数被调用时临时分配储存单元的。

传递方式:

值传递;

传递方向:

从实参传到形参,单向传递。

数组元素作实参:

传递值;

用数组名作实参,传递数组首元素的地址(首地址)。

形参数组可以不指定大小,如floataverage(floatarray[])

以下对C语言函数的有关描述中,正确的是。

A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.C函数既可以嵌套定义又可递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

第八章指针

8.1指针是什么

指针是一个地址,指针变量是存放地址的变量。

指针变量的值是地址

定义指针变量时必须指定基类型

8.char*p="

girl"

的含义是定义字符型指针变量p,p的值是字符串"

(的地址)。

(×

8.2指针变量

定义指针变量:

int*pointer_1;

把地址赋给指针变量:

pointer_1=&

a;

(也说明了a是int类型的信息)

【可以在定义指针变量时同时初始化:

int*p=&

a】

输出变量a的值:

printf(“……”,*pointer_1);

好像输入变量a的值是不用&

1、若有定义:

charch;

(1)使指针p指向变量ch的定义语句是char*p=&

ch;

(2)若已定义char*p;

,使指针p指向变量ch的赋值语句是p=&

(3)在

(1)的基础上,通过指针p给变量ch读入字符的scanf调用语句是scanf(“%c”,p);

(4)在

(1)的基础上,通过指针p给变量ch赋字符’a’的语句是*p=’a’;

3、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。

请填空。

voidexchange(int*x,int*y)

{intt;

t=*y;

*y=*x;

*x=t;

1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是(B)。

A存放读入数据项的存储区B存放读入数据的地址或指向此地址的指针

C一个指向所读文件的文件指针D一个整形变量,代表要读入的数据项总数

6.函数调用语句:

fseek(fp,-10L,2);

的含义是(A)。

A将文件位置指针从文件末尾处向文件头的方向移动10个字节

B将文件位置指针从当前位置向文件头的方向移动10个字节

C将文件位置指针从当前位置向文件末尾方向移动10个字节

D将文件位置指针移到距离文件头10个字节处

9、以下程序的输出结果是(B)。

A、运行出错B、100C、a的地址D、b的地址

#include<

stdio.h>

voidmain()

int**k,*a,b=100;

a=&

b;

k=&

a;

printf(“%d\n”,**k);

8.3指针引用数组

下标法:

Inta[10]={……};

Int*p;

p=&

a[0](把元素赋给指针变量)

指针法:

*(p+i)

a[i],*(a+i)和*p是一样的,在输出的时候。

在C语言中,数组名代表数组中首元素的地址,因此下面两个语句等价:

P=&

a[0];

p=a;

在指针已指向一个数组元素时,可以对指针进行以下运算:

P+1;

p-1;

p++;

p--;

p1-p2(当两个指针都指向同一数组

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2