篇一:c语言期末试题
试卷编号:10183
所属语言:Turbo C
试卷方案:fny-13
试卷总分:110分
共有题型:7种
━━━━━━━━━━━━━━
一、填空 共5题 (共计15分)
━━━━━━━━━━━━━━
第1题 (3.0分)
int x=4,y=z=2;z=x==(y=z); 则z的值为【1】。
答案:
1). 0
第2题 (3.0分)
设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是【1】。
答案:
1). 9
第3题 (3.0分)
设x=72,表达式x=(x>=60)的值为【1】。 答案:
1). 1
第4题 (3.0分)
sqrt()函数的原型在头文件【1】中。 答案:
1). math.h
第5题 (3.0分)
int x=2;z=-x+++1; 则z的值为【1】。 答案:
1). -1
━━━━━━━━━━━━━━
二、判断 共5题 (共计10分) ━━━━━━━━━━━━━━
第1题 (2.0分)
若有说明int c;则while(c=get));是正确的C语句。 答案:Y
第2题 (2.0分)
结构体类型只有一种。
答案:N
第3题 (2.0分)
若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义, 所以此宏定义是错误的。
答案:N
第4题 (2.0分)
参加位运算的数据可以是任何类型的数据。
答案:N
第5题 (2.0分)
若有 int i=10,j=2;则执行完i*=j+8;后的值为28。 答案:N
━━━━━━━━━━━━━━━━━
三、单项选择 共10题 (共计10分)
━━━━━━━━━━━━━━━━━
第1题 (1.0分)
若有下列定义,则对a数组元素地址的正确引用是()。 int a[5],*p=a;
A:*(p+5)
B:*p+2
C:*(a+2)
D:*&a[5]
答案:C
第2题 (1.0分)
在C语言的函数中,下列正确的说法是()。
A:必须有形参
B:形参必须是变量名
C:可以有也可以没有形参
D:数组名不能作形参
答案:C
第3题 (1.0分)
若有说明:int a[3][4];则数组a中各元素()。
A:可在程序的运行阶段得到初值0
B:可在程序的编译阶段得到初值0
C:不能得到确定的初值0
D:可在程序的编译或运行阶段得到初值0
答案:C
第4题 (1.0分)
设C语言中,int类型数据占2个字节,则short类型数据占()。 A:1个字节
B:2个字节
C:4个字节
D:8个字节
答案:B
第5题 (1.0分)
若变量a与i已正确定义,且i已正确赋值,合法的语句是()。 A:a==1
B:++i;
C:a=a++=5;
D:a=int(i);
答案:B
第6题 (1.0分)
若有说明:int a[10];则对a数组元素的正确引用是()。 A:a[10]
B:a[3,5]
C:a(5)
D:a[10-10]
答案:D
第7题 (1.0分)
若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,值是()。
A:-3
B:9
C:-12
D:6 a的
答案:C
第8题 (1.0分)
若有说明:int *p,m=5,n;以下正确的程序段是()。 A:p=&n;scanf("%d",&p);
B:p=&n;scanf("%d",*p)
C:scanf("%d",&n);*p=n;
D:p=&n;*p=m;
答案:D
第9题 (1.0分)
以下叙述中不正确的是()。
A:C语言中的文
答案:D
第10题 (1.0分)
经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为()。
char x=65;
float y=7.3;
int a=100;
double b=4.5;
A:2,2,2,4
B:1,2,2,4
C:1,4,2,8
D:2,4,2,8
答案:C
━━━━━━━━━━━━━━━━
四、多项选择 共5题 (共计10分)
━━━━━━━━━━━━━━━━
第1题 (2.0分)
以下对二维数组a进行正确初始话的是()。
A:static char word[]=Turbo\0;
B:static char word[]={T,u,r,b,o,\0};
C:static char word[]={"Turbo\0"};
D:static char word[]="Turbo\0";
答案:BCD
第2题 (2.0分)
以下描述正确的是()。
A:调用函数时,实参可以是表达式
B:调用函数时,实参与形参可以共用内存单元 C:调用函数时,将为形参分配内存单元
D:调用函数时,实参与形参的类型必须一致
答案:ACD
第3题 (2.0分)
continue语句功能正确的描述是() A:终止当前所在的循环
B:结束本轮循环,开始下一轮循环 C:跳过循环体下面的语句
D:只能用在3种循环语句的循环体中
答案:BCD
第4题 (2.0分)
有说明语句char str[]={"football"};正确的描述是() A:数组str的长度是9
B:strlen(str)的值是8
C:str[4]的值是98
D:str[8]的值是0
答案:ABCD
第5题 (2.0分)
下列中是C语言的合法标识符的有() A:good_morning
B:main
C:stdio.h
D:8abc
答案:AB
━━━━━━━━━━━━━━━━
五、程序填空 共3题 (共计15分) ━━━━━━━━━━━━━━━━
第1题 (5.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:用函数调用方式,实现字符串的复制。
-------------------------------------------------------*/
void string_copy(char *str_from, char *str_to) {
int i=0;
/***********SPACE***********/
for(; (*(【?】)=*(str_from+i))!=\0; i++) ; }
main()
{
static char array_str1[20]="I am a teacher."; char array_str2[20];
/***********SPACE***********/
【?】(array_str1, array_str2);
/***********SPACE***********/
【?】("array_str2=%s\n",array_str2);
}
答案:
1). str_to+i 或 i+str_to
2). string_copy
3). printf
第2题 (5.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:从读入的整数数据中,统计大于零的整数个数和小于零的 整数个数。用输入零来结束输入,程序中用变量i统计大于 零的整数个数,用变量j统计小于零的整数个数。
-------------------------------------------------------*/
#include
void main(void)
{
int n,i,j;
printf("Enter INT number,with 0 to end\n"); i=j=0;
scanf("%d",&n);
while(n!=0)
{
/***********SPACE***********/ if(n>0) i=【?】;
/***********SPACE***********/ if(n<0) j=【?】;
/***********SPACE***********/ scanf("%d",【?】);
}
printf("i=%4d\nj=%4d\n",i,j);
}
答案:
1). i + 1 或 i+1 或 1+i 或 1 + i
2). j+1 或 1+j 或 1 + j 或 j + 1
3). &n
第3题 (5.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入字符串,再输入一个字符,将字符串中与输入字符相 同的字符删除。
-------------------------------------------------------*/
#include "stdio.h"
void fun(char a[],char c)
{
int i,j;
/***********SPACE***********/
for(i=j=0; 【?】;i++)
if(a[i]!=c) a[j++]=a[i];
/***********SPACE***********/
【?】;
}
void main(void)
{
char a[20],cc;
gets(a);
/***********SPAC