C期末复习12月复习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C期末复习(09/10 1)

一、填空题

1.C语言中基本的数据类型有:整型、实型、字符型。

2.有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是14 ,A[3]= m 。3.符号”a”和’a’的区别是“a”是字符串常量,’a’是字符常量。

4.所谓“指针”就是地址。

“&”运算符的作用是取地址运算符,取运算对象的地址。

“*”运算符的作用是指针运算符,取指针变量所指的内容。

5.表达式7+8>2 && 25 %5的结果是_________0___________。

6.int *p 的含义是定义一个指向整型数的指针变量p 。

7.数组int a[3][4];共定义了___12_________个数组元素。

8.设有下列数据定义语句,则数组元素x[i]的值是______0____________。

int i=3,x[4]={ 1,2,3};

9.在C语言中,二维数组元素在内存中的存放顺序是按行存放。

10.下面f函数的功能是求两个参数的差,并将结果返回调用函数。函数中错误的部分是void ,应改为float 。

void f (float a,float b)

{float c;

c=a-b;

return c;

}

11.二维数组A中元素A[1][2]的值是 5 。

A[4][5]={{2,2,4},{4,6,5,6},{0},{0}};

12.若有以下定义:int a[8] 则数组元素下标的上限为___7____ ,下限为____0______ 。13.写一个定义字符数组a的语句,其长度为20,并为其赋初值:“Good morning ”

char a[20]= “Good Morning” ;

14.有程序段:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; 则b中的值是9 。15.若自定义函数要求返回一个值,则应在该函数体中有一条__return______语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型符____void ________。16.对二维数组a 初始化如下:

int a [3][4]={{5,10},{3,6,9,12},{0}};

则数组元素a[0][1] 的值是___10_______,a[2][1] 的值是___0_________ 。

19.设有以下宏定义:#define f(z) z*z ,执行赋值语句k=f(4+4)/f(2+2);(k 为int 型变量)后,k 的值是 28 。

20.函数中的形参和调用时的实参都是数组名时,传递方式为__传地址方式____;都是变量时,传递方式为____值传递方式_________。

21.设有说明语句 int(*p)[4] ;其中的标识符 p 是一个指向具有_____4个_____ 整型元素的 ___指向一维数组__________的指针。

22.C 语言中不允许把一个_____结构体_______ 变量作为一个整体进行输入和输出。 23.若有 int y , * P ; P = &y ; 那么

* &y =_________y_____________ & * P =________P______________ 。

24.运算符"."称为___成员____运算符,运算符" -> "称为___指向_______运算符。 25.设struct student {int num;char name[20];}st;

写出printf 语句: printf(“%d %s”,st.num,); 输出学生st 的各个成员分量。要求按num 、name 的顺序输出,各成员之间使用空格分隔开。

26.若有char x=32 , y=3 ; 则表达式 ~x&y 的值为 3 。

27.能正确表示逻辑关系:“a≥=10或a≤0”的C 语言表达式是 ( D )

A . a>=10 or a<=0

B .a>=0|a<=10

C .a>=10 &&a<=0

D .a>=10‖a<=0 28.若有以下的数组定义:

char a[ ]="abcde";

char b[ ]={'a','b','c','d','e'}; 则正确的描述是: ( B ) A . a 数组和b 数组长度相同 B . a 数组长度大于b 数组长度 C . a 数组长度小于b 数组长度 D . 两个数组中存放相同的内容 29. 写出数学计算式|

1|30cos x y -=

的C 语言表达式:

sqrt(cos(30*3.1416/180)/fabs(1-x))

30.假定建立了如下图所示的链表结构,指针p 、q 分别指向相邻的2个结点,则将r 所指结点插入p 、q 所指结点之间的C 语句是 r->next=q ; 和 p->next=r ;

二、选择题

1.在一个文件中定义的全局变量的作用域为 ( D )

A . 本程序的全部范围

B . 离定义该变量的位置最近的函数

C . 函数内全部范围

D . 定义该变量的位置开始到本文件结束 2.一个函数返回值的类型是由 ( B )

A.return语句中的表达式类型决定B.定义函数时所指定的函数类型决定C.调用该函数的主调函数的类型决定D.在调用函数时临时指定

3.在C程序中有如下语句:char *func(int x,int y); 它是( C )。

A. 对函数func的定义。

B. 对函数func的调用。

C.对函数func的原型说明。 D. 不合法的。

4.以下程序的输出结果是( D )。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A. 15

B. 14

C. 7

D. 6

5.定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};

则语句for(i=0;i<3;i++) printf("%d ",x[i][2-i]); 的输出结果是( C )。

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

6.不能把字符串:Hello!赋给数组b的语句是( B )。

A.char b[10]={'H','e','l','l','o','!'};

B. char b[10]; b="Hello!";

C. char b[10]; strcpy(b,"Hello!");

D. char b[10]="Hello!";

7.设变量定义为int a[3]={1,4,7},*p=&a[2], 则*p的值是 C 。

A.&a[2] B.4 C.7 D.1

8.设有数组定义:char array[]=”China”; 则数组所占的空间是___C_____。

A.4个字节 B.5个字节C.6个字节D.7个字节

9.用数组名作为函数调用时的实参,则实际上传递给形参的是 D 。

A.数组元素的个数B.数组第一个元素的值

C.数组中全部元素的值D.数组的首地址

10.数组a 和b 中已分别存放字符串,则正确的输出形式是 B 。

A.puts ( a,b) ;B.printf(“%s, %s”, a ,b) ;

C.putchar (a ,b) ;D.puts ( ‘a' , ' b') ;

11.在C 语言中,函数的数据类型是指 D 。

A.函数形参的数据类型B.任意指定的数据类型

C.调用该函数时的实参的数据类型D.函数返回值的数据类型

13.在C语言中,要求参加运算的数必须是整数的运算符是 A 。

A.% B./ C.!D.*

14.设int a=1,则执行完循环while (a++<5); a的值是____A_______。

A. 6

B. 5

C. 1

D. -264

15.有以下程序

main()

{ char p[]={'a', 'b', 'c'}, q[]="abc";

printf("%d %d\n", sizeof(p),sizeof(q));

};

程序运行后的输出结果是

A.4 4 B.3 3 C.3 4 D.4 3

【答案】C

16.有定义语句:int b;char c[10]; 则正确的输入语句是______。

A.scanf("%d%s",&b,&c); B.scanf("%d%s",&b, c);

C.scanf("%d%s",b, c); D.scanf("%d%s",b,&c);

【答案】B

相关文档
最新文档