C期末复习12月复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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