C期末复习试题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 ________。
“*”运算符的作用是指针运算符,取指针变量所指的内容。
5.表达式7+8>2 && 25 %5的结果是_________0___________。
6.int *p的含义是定义一个指向整型数的指针变量p。
7.数组int a[3][4];共定义了___12_________个数组元素。
8.设有下列数据定义语句,则数组元素x[i]的值是______0____________。
C.函数内全部范围D.定义该变量的位置开始到本文件结束
2.一个函数返回值的类型是由( B )
A.return语句中的表达式类型决定B.定义函数时所指定的函数类型决定
C.调用该函数的主调函数的类型决定D.在调用函数时临时指定
3.在C程序中有如下语句:char *func(int x,int y);它是(C)。
printf("%d\n",s); }
A.12ba56 B.6521 C.6 D.62
【答案】C
24.以下程序的输出结果是
f(int b[],int m,int n)
{ int i,s=0;
for(i=m;i<n;i=i+2)
s=s+b[i];
return s;
}
main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
printf(“%d\n”,s);
}
程序运行后的输出结果是
A.11B.19C.13D.20
【答案】B
22.以下程序的输出结果是______。
main()
{int i, k, a[10], p[3]; k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
(3) printf("%d",a[i]);
}
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 ”
A.int a[5]={0,1,2,3,4,5}; B.char a[]={0,1,2,3,4,5};
C.char a={'A','B','C'}; D.int a[5]="0123";
【答案】B
20.以下程序的输出结果是
main()
{ char ch[3][5]={"AAAA","BBB","CC"};
}
A) you&me B) you C) me D) err
【答案】A
27.下列程序段正确的是
A.#include <stdio.h> B.#include <stdio.h>;
main() main()
{ {
int i,j; }
int(i)=j;
}
C.include <stdio.h> D.#include <stdio.h>
*a+=k;
}
A. 1 B.8 C.7 D.4
【答案】C.
32.阅读下列程序,则运行结果为
#include "stdio.h"
fun()
{ static int x=5;
x++
return x;
}
main()
{ int i,x;
for(i=0;i<3;i++)
x=fun();
printf("%d\n",x);
【答案】B
17.有以下程序B
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2) j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是______。
A.42 B.45 C.56 D.60
}
A.ABC6789 B.ABC67 C.12345ABC6 D.ABC456789
【答案】A
26.下列程序执行后的输出结果是
main()
{ char arr[2][4];
strcpy (arr,"you"); strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
fune(rec1,rec2+rec3,(rec4,rec5));
在该函数的调用语句中,语言的实参个数是几个?
A.1 B.2 C.3 D.4
【答案】C.
30.以下程序运算的结果是___________。
Int f2(int b)
{
b=b*b;
return b;}
void f1(int b)
{
b=++b,b+f2(b);
}
A. 5 B.6C. 7 D. 8
【答案】D.
33.下程序的运行结果为
#include <stdio.h>
f(int a)
{
auto int b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
main()
{
int a=2,i;
for(i=0;i<3;i++)
printf("%d",f(a));
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};
【答案】B
18.有以下程序
main()
{
char a[7]="a0\0a0\0"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是______。
A.2 2 B.76 C.7 2 D.6 2
【答案】C
19.以下能正确定义一维数组的选项是______。
main() main()
{ {
int i,j; }
}
【答案】D.
28.如下程序:
#include <stdio,h>
max(int x,int y);
main()
{
int a,b,c;
scanf(" %d,%d ",&a,&b);
c=max(a,b);
print(" a=%d,b=%d,max=%d\n ",a,b,c);
16.对二维数组a初始化如下:
int a [3][4]={{5,10},{3,6,9,12},{0}};
则数组元素a[0][1]的值是___10_______,a[2][1]的值是___0_________。
二、选择题
1.在一个文件中定义的全局变量的作用域为( D )
A.本程序的全部范围B.离定义该变量的位置最近的函数
则语句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!";
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);
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));
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.4C.7D.1
8.设有数组定义:char array[]=”China”;则数组所占的空间是___C_____。
C期末复习(08/092)
一、填空题
1.C语言中基本的数据类型有:整型、实型、字符型。
2.有如下语句:char A[ ]={”I am a student”};该字符串的长度是14,A[3]=m。
3.符号”a”和’a’的区别是“a”是字符串常量,’a’是字符常量。
4.所谓“指针”就是地址。
“&”运算符的作用是取地址运算符,取运算对象的地址。
};
程序运行后的输出结果是
A.4 4 B.33 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);
C.putchar (a ,b);D.puts ( ‘a' , ' b');
11.在C语言中,函数的数据类型是指D。
A.函数形参的数据类型B.任意指定的数据类型
C.调用该函数时的实参的数据类型D.函数返回值的数据类型
13.在C语言中,要求参加运算的数必须是整数的运算符是A。
A.% B./ C.!D.*
printf(" %d\n ",b);
}
main()
{
int a=1;
f1(a);
}
【答案】2
31.以下程序的输出结果是:
main()
{
int x=0;
sub(&x,8,1);
printf(" %d\n ",x);
}
sub(int *a,int n,int k)
{
if(k<=n) sub(a,n/2,2*k)
printf("\"%s\"\n",ch[1]);
}
A."AAAA"B."BBB"C."BBBCC"D."CC"
【答案】B
21.有以下程序
main()
{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0
for(i=0;i<4;i++) s+=aa[i][1];
for(i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
}
A.20B.21C.22D.23
【答案】B
23.下面程序的运行结果是______。
main()
{ char ch[7]={"65ab21"};
int i,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0';
}
int max(x,y)
int x,y;
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}
运行时,键入3,6并回车,可得到结果
A. a=3,b=6,max=6 B.a=6,b=6,max=6
C. a=3,b=3,max=6 D. a=3,b=6,max=3
【答案】A.
29.如下函数的调用语句为:
x=f(a,3,7Fra Baidu bibliotek;
printf("%d\n",x);
}
A.10 B.18 C.8 D.15
【答案】A
25.当执行下面的程序时,如果输入ABC,则输出结果是
#include“stdio.h”
#include“string.h”
main()
{ char ss[10]=“1,2,3,4,5”;
gets(ss); strcat(ss,“6789”); printf(“%s\n”,ss);
int i=3,x[4]={ 1,2,3};
9.在C语言中,二维数组元素在内存中的存放顺序是按行存放。
10.以下程序中有错误的语句是(2)for(i=0;i<M;i++)。
#define M 12
main()
{ int i;
(1) int a[M]={4,3,2,1,5,9,8,8};
(2) for(i=l;i<=M;i++)
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 ________。
“*”运算符的作用是指针运算符,取指针变量所指的内容。
5.表达式7+8>2 && 25 %5的结果是_________0___________。
6.int *p的含义是定义一个指向整型数的指针变量p。
7.数组int a[3][4];共定义了___12_________个数组元素。
8.设有下列数据定义语句,则数组元素x[i]的值是______0____________。
C.函数内全部范围D.定义该变量的位置开始到本文件结束
2.一个函数返回值的类型是由( B )
A.return语句中的表达式类型决定B.定义函数时所指定的函数类型决定
C.调用该函数的主调函数的类型决定D.在调用函数时临时指定
3.在C程序中有如下语句:char *func(int x,int y);它是(C)。
printf("%d\n",s); }
A.12ba56 B.6521 C.6 D.62
【答案】C
24.以下程序的输出结果是
f(int b[],int m,int n)
{ int i,s=0;
for(i=m;i<n;i=i+2)
s=s+b[i];
return s;
}
main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
printf(“%d\n”,s);
}
程序运行后的输出结果是
A.11B.19C.13D.20
【答案】B
22.以下程序的输出结果是______。
main()
{int i, k, a[10], p[3]; k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
(3) printf("%d",a[i]);
}
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 ”
A.int a[5]={0,1,2,3,4,5}; B.char a[]={0,1,2,3,4,5};
C.char a={'A','B','C'}; D.int a[5]="0123";
【答案】B
20.以下程序的输出结果是
main()
{ char ch[3][5]={"AAAA","BBB","CC"};
}
A) you&me B) you C) me D) err
【答案】A
27.下列程序段正确的是
A.#include <stdio.h> B.#include <stdio.h>;
main() main()
{ {
int i,j; }
int(i)=j;
}
C.include <stdio.h> D.#include <stdio.h>
*a+=k;
}
A. 1 B.8 C.7 D.4
【答案】C.
32.阅读下列程序,则运行结果为
#include "stdio.h"
fun()
{ static int x=5;
x++
return x;
}
main()
{ int i,x;
for(i=0;i<3;i++)
x=fun();
printf("%d\n",x);
【答案】B
17.有以下程序B
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2) j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是______。
A.42 B.45 C.56 D.60
}
A.ABC6789 B.ABC67 C.12345ABC6 D.ABC456789
【答案】A
26.下列程序执行后的输出结果是
main()
{ char arr[2][4];
strcpy (arr,"you"); strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
fune(rec1,rec2+rec3,(rec4,rec5));
在该函数的调用语句中,语言的实参个数是几个?
A.1 B.2 C.3 D.4
【答案】C.
30.以下程序运算的结果是___________。
Int f2(int b)
{
b=b*b;
return b;}
void f1(int b)
{
b=++b,b+f2(b);
}
A. 5 B.6C. 7 D. 8
【答案】D.
33.下程序的运行结果为
#include <stdio.h>
f(int a)
{
auto int b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
main()
{
int a=2,i;
for(i=0;i<3;i++)
printf("%d",f(a));
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};
【答案】B
18.有以下程序
main()
{
char a[7]="a0\0a0\0"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是______。
A.2 2 B.76 C.7 2 D.6 2
【答案】C
19.以下能正确定义一维数组的选项是______。
main() main()
{ {
int i,j; }
}
【答案】D.
28.如下程序:
#include <stdio,h>
max(int x,int y);
main()
{
int a,b,c;
scanf(" %d,%d ",&a,&b);
c=max(a,b);
print(" a=%d,b=%d,max=%d\n ",a,b,c);
16.对二维数组a初始化如下:
int a [3][4]={{5,10},{3,6,9,12},{0}};
则数组元素a[0][1]的值是___10_______,a[2][1]的值是___0_________。
二、选择题
1.在一个文件中定义的全局变量的作用域为( D )
A.本程序的全部范围B.离定义该变量的位置最近的函数
则语句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!";
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);
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));
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.4C.7D.1
8.设有数组定义:char array[]=”China”;则数组所占的空间是___C_____。
C期末复习(08/092)
一、填空题
1.C语言中基本的数据类型有:整型、实型、字符型。
2.有如下语句:char A[ ]={”I am a student”};该字符串的长度是14,A[3]=m。
3.符号”a”和’a’的区别是“a”是字符串常量,’a’是字符常量。
4.所谓“指针”就是地址。
“&”运算符的作用是取地址运算符,取运算对象的地址。
};
程序运行后的输出结果是
A.4 4 B.33 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);
C.putchar (a ,b);D.puts ( ‘a' , ' b');
11.在C语言中,函数的数据类型是指D。
A.函数形参的数据类型B.任意指定的数据类型
C.调用该函数时的实参的数据类型D.函数返回值的数据类型
13.在C语言中,要求参加运算的数必须是整数的运算符是A。
A.% B./ C.!D.*
printf(" %d\n ",b);
}
main()
{
int a=1;
f1(a);
}
【答案】2
31.以下程序的输出结果是:
main()
{
int x=0;
sub(&x,8,1);
printf(" %d\n ",x);
}
sub(int *a,int n,int k)
{
if(k<=n) sub(a,n/2,2*k)
printf("\"%s\"\n",ch[1]);
}
A."AAAA"B."BBB"C."BBBCC"D."CC"
【答案】B
21.有以下程序
main()
{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0
for(i=0;i<4;i++) s+=aa[i][1];
for(i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
}
A.20B.21C.22D.23
【答案】B
23.下面程序的运行结果是______。
main()
{ char ch[7]={"65ab21"};
int i,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0';
}
int max(x,y)
int x,y;
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}
运行时,键入3,6并回车,可得到结果
A. a=3,b=6,max=6 B.a=6,b=6,max=6
C. a=3,b=3,max=6 D. a=3,b=6,max=3
【答案】A.
29.如下函数的调用语句为:
x=f(a,3,7Fra Baidu bibliotek;
printf("%d\n",x);
}
A.10 B.18 C.8 D.15
【答案】A
25.当执行下面的程序时,如果输入ABC,则输出结果是
#include“stdio.h”
#include“string.h”
main()
{ char ss[10]=“1,2,3,4,5”;
gets(ss); strcat(ss,“6789”); printf(“%s\n”,ss);
int i=3,x[4]={ 1,2,3};
9.在C语言中,二维数组元素在内存中的存放顺序是按行存放。
10.以下程序中有错误的语句是(2)for(i=0;i<M;i++)。
#define M 12
main()
{ int i;
(1) int a[M]={4,3,2,1,5,9,8,8};
(2) for(i=l;i<=M;i++)