Ⅰ 大一c语言期末考试求题库
一、单项选择题(共10题,每题2分,共20分。在备选答案中选择一个最佳答案。多选、错选、不选不得分)
1、不是C语言基本数据类型的是( )。
A、指针类型 B、整型
C、字符型 D、实型
2、设有:int a=3, b= 4, c= 5,x , y; 表达式0 && (x=a)&&(y=b)的值为( )。
A、1 B、0 C、3 D、4
3、设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( )。
A、18 B、-3 C、9 D、12
4、执行以下程序段后,输出的y值为( )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=&a[0];
y=*p; printf(“%d”,y);
}
A、2 B、4 C、6 D、8
5、有定义语句:float a[4];则分配给数组a的内存空间为( )字节。
A、 20 B、 12 C、 16 C、10
6、以下描述错误的是( )。
A、break语句可用于while语句。
B、break语句和continue语句的作用是一样的。
C、在循环语句中使用break语句是为了跳出循环,提前结束循环。
D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环。
7、C语言中规定,if语句的嵌套结构中,else总是( )。
A、与最近的if 配对 B、与第一个if 配对
C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对
8、说明语句“int (*p)( ); ”的含义是( ) 。
A、p是一个指向一维数组的指针变量。
B、p是指针变量,指向一个整型数据。
C、p是一个指向函数的指针,该函数返回一个int型数据。
D、以上都不对。
9、以下对二维数组c的正确声明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段执行后输出结果为( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、编译出错
二、填空题(共7题,共10空,每空1分,共10分。将答案填在题中横线上)
1、C语言提供的三种逻辑运算符是 && 、 || 和!;
2、函数的返回值是通过函数中的 return 语句获得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定义后,a[2][2]的值为_6__ _;
4、对于"int *pa[5];" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__;
5、单向链表的尾节点next指针应赋值__ NULL___;
6、在语句for(x=1,y=3;x>y;y++)中循环体执行的次数为 0 。
7、int a[5];数组a的首地址为2000,则元素a[1]的地址为 2002 ,元素a[2]的地址为 2004 。
三、程序填空题(共2题,共5空,每空4分,共20分)
1、以下程序完成计算1-1/2+1/3-1/4+1/5+……前n 项和,请填空。
#include <stdio.h>
int main( )
{ int i, n, flag;
float sum;
scanf("%d", &n);
flag= 1 ;
sum=0;
for(i=1;i<=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
2、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。
#include <stdio.h>
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i<=n;i++)
{ scanf(“%d”, &a);
if(a>0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(“正数:&d个,零:%d个,负数:%d个\n”, count1,count2,count3 );
}
四、运行程序结果题(共4题,每题6分,共24分)
1、写出程序运行结果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=&x; p2=&y;
t=*p1;*p1=*p2;*p2=t;
printf("x=%d,y=%d\n",x,y);
}
运行结果为:
程序有错,不能运行!或写:
x=2,y=1
2、写出程序运行结果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(“min=%d\n”,min(a,b));
}
运行结果为:
程序有错,不能运行!或写:
max=6
min=2
3、写出程序运行结果。
#include <stdio.h>
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum=sum+a[i][j];
printf(“sum=%d\n”,sum);
}
运行结果为:
程序有错,不能运行!或写:
sum=15
4、写出程序运行结果。
void main( )
{ int n,f;
n=1;
while(n<=10)
{ f=f*n;
n+=2;
}
printf(“f=%d\n”,&f);
}
运行结果为:
程序有错,不能运行!或写:
f=不确定
五、程序设计题(共2题,每题13分,共26分)
1、将一个数组按逆序存放,如元素1、2、3、4、5,按逆序存放后为5、4、3、2、1。
Ⅱ 大一期末考试复习题,求教C语言编程高手
1、10 逗号(皮纯,)分隔开的连续表达式,取最后一个表达式的值为整个表达锋宏式的值。
2、A吧。这个不太确定。c语言中不允许出现A=B=C形式的赋值。C中没有**这个东西,D中,强制转换为y=(float)i;
3、B 所谓保留字,一燃基咐般是指C语言留作关键字了,比如int,我们不能定义一个变量名叫int的。
4、8 参照题目一,依次计算各个表达式,取最后一个表达式的值,结果为8。
Ⅲ 大一期末C语言考试的重点是什么
我上点选择题
1、以下不正确的描述为【 】。
(A) 调用函数时,实参可以是表达式
(B) 调用函数时,实参与形参可以共用内存单元
(C) 调用函数时,将为形参分配内存单元
(D) 调用函数时,实参与形参的类型必须一致
2、以下正确的叙述是【 】。
(A) C语言的主函数是无参函数
(B) C语言的主函数最多允许有1个形式参数
(C) C语言的主函数最多允许2个形式参数
(D) C语言的主函数可以有2个以上形式参数
3、C语言中函数返回值的类型是由【 】决定的。
(A) return语句中的表达式类型
(B) 调用该函数的主调函数类型
(C) 调用函数时临时
(D) 定义函数时所指定的函数类型
4、若x为int型变量,则以下函数fun【 】。
fun(int x)
{
printf("%d",x);
}
(A) 返回值为void类型
(B) 无法确定返回值
(C) 返回值为int类型
(D) 没有返回值
5、以下不正确的描述为【 】。
(A) 不同函数中可以使用相同名字的变量
(B) 形式参数是局部变量
(C) 一个函数内部定义的变量只能在本函数范围内逗旅有效
(D) 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效
6、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是【 】。
(A) 地址传递
(B) 值传递
(C) 由实参传给形参,并由形参传回来给实参 十
(D) 由用户指定传递方式
7、若用数组名作为函数调用时的实参,则实际上传递给形参的是【 】。
(A) 数组首地址
(B) 数组的第一个元素值
(C) 数组中全部元素的值
(D) 数组元素的个数
8、凡是函数中未指定存储类别的变量樱指升,其隐含的存储类别为【 】。//应该为局部变量
(A) 自动(auto)
(B) 静态(static)
(C) 外部(extem)
(D) 寄存器(register)
9、在C语言中,对于存储类型为【 】的变量,只有在使用它们时才占用内存单元。
(A) static和auto
(B) register和extern
(C) register和static
(D) auto和register
10、在一个源文件中定义的全局变量的作用域为【 】。
(A)本文件的全部范围
(B)本程序的全部范围
(C)本函数的全部范围
(D)从定义变量的位置开始至文件结束
11、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别为【 】。
(A)extern
(B)register
(C)auto
(D)static
12、以下不正确的描述为【 】。
(A)在函数之外定义的变量称为外部变量,外部变量是全局变量
(B)在一个函数中既可以使用本函数中的局部变量,又可以使用全局变量
(C)外部变量定义和外部变量说明的含义不同
(D)若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用
13、以下正确的函数定义形式是【 】。
(A)double fun(int x,int y)
(B)double fun(int x; int y)
(C)double fun(int x,int y);
(D)double fun(int x,y);
14、以下说法正确的是【 】。
(A) 实参和与其对应的形参各占用独立的存储单元
(B) 实参和与其对应的形参共占用一个存储单元
(C) 只有当实参和与其对应的形参同名时才共用存储单元
(D) 形参是虚拟的脊老,不占用存储单元
15、若调用一个函数,且此函数中没有return语句,则正确的说法是【 】。
(A) 没有返回值
(B) 返回若干个系统默认值
(C) 能返回一个用户所希望的函数值
(D) 返回一个不确定的值
16、以下叙述正确的是【 】。
(A )定义函数时,形参的类型说明可以放在函数体内
(B) return后边的值不能为表达式
(C) 如果函数的类型与返回值类型不一致,以函数类型为准
(D) 如果形参与实参的类型不一致,以实参类型为准
17、以下程序有语法性错误,有关错误的原因的正确说法是【 】。
main( )
{int G=5,K;
void Prt_char();
……
K=Prt_char(G);
……
}
(A) 语句void prt_char();有错,它是函数调用语句,不能用void说明
(B) 变量名不能使用大写字符
(C) 函数说明和函数调用语句之间有矛盾
(D) 函数名不能使用下划线
18、以下正确的描述是【 】。
(A) 函数的定义可以嵌套,但函数的调用不可以嵌套
(B) 函数的定义不可以嵌套,但函数的调用可以嵌套
(C) 函数的定义和函数的调用均不可以嵌套
(D) 函数的定义和函数的调用均可以嵌套
19、以下说法正确的是【 】。
如果在一个函数中的复合语句中定义了一个变量,则该变量
(A) 只在该复合语句中有效
(B) 在该函数中有效
(C) 在本程序范围内均有效
(D) 为非法变量说明
20、以下程序的正确运行结果是【 】。
f(int a)
{int b=0; static int c=3;
b++; c++;
return(a+b+c);
}
main()
{int a=2,i;
for(i=0;i<3;i++) printf("%4d",f(a));
}
(A) 7 7 7 (B) 7 10 13
(C) 7 9 11 (D) 7 8 9
21、请选择正确的运行结果填入【 】中。
#include <stdio.h>
fun(int x,int y)
{static int m=0,i=2;
i+=m+1;
m=i+x+y;
return(m);
}
main()
{
int j=4,m=1,k;
k=fun(j,m);
printf("%d,",k);
k=fun(j,m);
printf("%d\n",k);
}
(A) 08, 20 (B) 8, 8 (C) 8, 17 (D) 8, 16
22、请选择正确的运行结果填入【 】中。
#include <stdio.h>
int x,y;
num( )
{
int a=15,b=10;
int x,y;
x=a-b;
y=a+b;
return;
}
main( )
{int a=7,b=5;
x=a+b;
y=a-b;
num( );
printf("%d,%d\n",x,y);
}
(A) 12,2 (B) 5,25 (C) 2,12 (D)不确定
一、填空题
1、一个C语言程序的语句至少应包含一个______。
2、C语言源程序文件的扩展名是______,经过编译、连接后,生成文件的扩展名是______。
3、结构化程序由顺序结构、______和______三种基本结构组成。
4、C语言的执行是从______开始执行的。
5、C源程序的语句分隔符是______。
6、在C语言中,用关键字______定义单精度实型变量。
7、表达式S=12应当读做“______”。
8、C语言源程序的基本单位是______。
9、设int x=9,y=8;表达式x-=y+1的结果是______。
10、若a为整型变量,a=12,则表达式:a * =2+3的值______。
11、调用C语言对输入输出处理的库函数时,在# include命令行中应包含的头文件是______。
12、表达式9%5的结果是______。
13、若a为整型变量,a=12,则表达式:a+=4的值______。
14、 在C语言中,要求运算数必须是整型的运算符是______。
15、在C语言中,用______表示逻辑“真”值。
16、7、表达式10/3的结果是______。
17、通常一个字节包含______个二进制位。
18、 假设所有变量均为整型,a=2,b=5,b++则表达式a+b的值是______。
19、在C语言中,最基本的数据类型只有四种,它们分别是:______、______、______和double。
20、一个C程序有且仅有一个______函数。
21、若a为整型变量,a=12,则表达式:a-=2的值______。
22、在C语言中,有三种逻辑运算符,它们分别是:______、______、______。
23、在C语言中,字符输入函数和字符输出函数分别是:______和______。
24、C程序开发的四个步骤是______、______、______和执行。
25、C程序的结构分别是:顺序结构、______、______。
26、if语句中的表达式可以是关系表达式、______、______。
27、______是C语言中惟一一个三元运算符。
28、C语言提供的预处理命令主要包括如下三种:宏定义、______、______。
Ⅳ 大学生c语言程序设计期末考试是纸质试卷吗
大学生c语言程序设计期末考试是纸质试卷。C语言期末考安排的是纸质试卷。意味着除了填空题,选择题,读代码,还有十分魔幻的手写代码。
Ⅳ 大一c语言考试题(急)
1、C源程序文件的扩展名是(.C);编译后生成的文件名后缀是(.OBJ);经过连接后生成文件
名后缀是(.exe);在VC++6.0中用Run命令运行当前程序时,运行的程序扩展名是(.exe)。
2、结构化程序的三种基本结构是(顺序、选择、循环)。
3、整型常量有三种表示方法,它们是(十进制整数)、(八制整数)、(十六整数)。
4、表达式3.5+1/2+56%10的值是(9.5);10/10和10%10的值各是(1和0)。
5、表达式3%3*3的值是(0);5/3*3的值是(3);3*6%4的值是(2)。
6、设intx=12;执行x+=x-=x*x后,x的值是(-264)。
7、表达式k=7,k+=k-=k+1的值是(-2)。
8、语句"printf("%x,%o",16,12);"的输出结果是(10,14)。
9、设shortx,y;y=(x=3,x+2,++x,x++*2);则x,y的值各是(5,8)。
10、设intx,y,z,t;x=y=z=1;t=++x||++y&&++z;则y的值是(1)。
11、条件10<=x<20或x<=0的C语言表达式是(x>=10&&x<20||x<=0)
12、设a=1,b=2,c=3,d=4;表达式a>b?a:c<d?a:d的值是(1)。
13、在C程序中,用(1)表示逻辑值“真”。
14、表示“x≥y≥z”的C表达式是(x>=y&&y>=z)。
15、设x为int型变量,请写出一个关系表达式((x%21==0)),用以判断x同时为3和7的倍数时
,关系表达式的值为真。
16、设ch是字符型变量,判断ch为英文字母的表达式是:(
ch<='z'&&ch>='a'||ch>='A'&&ch<='Z')。
17、在C语言中参数的传递总是采用(单向)传递。
18、如果return表达式;中”表达式”的类型与函数类型不一致,则以(函数类型)的类型为准
自动转换;如果实际参数的类型与形式参数的类型不一致,则以(形式参数)的类型为准自动转
换。
19、函数形式参数在(调用)时分配内存,(调用结束)时释放内存。
20、系统总是为数组分配(连续)的一块内存。
21、字符串的结束标志是(ASCII码的0)。
22、TC系统为任何指针变量分配的内存是(4)字节。
23、若有定义:doublex[3][5];则x数组中行下标的下限为(2),列下标的上限为(4)。
24、若有定义intx=3,*p;则使p指向变量x的赋值语句为(p=&x)。
25、在C语言程序中,在函数内部定义的变量称为(局部变量)。
26、chara[2][10]={“123”,”123456789”},*p[2]={“123”,”123456789”};则(前者)
占用内存多。
27、structst{charnum[5];inta[4];floatave;}a,*p;则变量a和p在内存各
占(25和4)字节。
28、unionun{inti;charc;};
structst{intv[4];doublet;unionunk;}w,*pw;pw=&w;
变量w占用(28)字节;通过w访问v[0]的形式是(w.v[0]);通过w访问成员c的形式是(w.k.c
);通过pw访问v[0]的全部形式有(pw->v[0],*(pw->v));通过pw访问成员c的全部形式有(
(pw->k.c))。(实验验证,pw->k->c这种书写有错误直接用.也是错误)
29、设fp是文件指针,要把字符变量ch的内容写入文件,可用的语句有(
fputc(ch,fp);fwrite(&ch,1,1,fp);)。
30、fputs(str,fp)函数的功能是(将数据str写入fp文件流中)。
{29题不能用fputs(&ch,fp);由于ch只有一个字符,如果用这句的话,会因为没有字符串结束标
志而写入很长的数据。从实验中得出。}
涉及到穷举的题目,像28、29可能没有列举完全其他题目都是经过vc++6.0验证过的。
Ⅵ 大一期末考C语言试题求解答
第一题:#include<stdio.h>
voidmain()
{
inta[10],b[9],i=0;
for(;i<10;i++)
{
printf("请输入第%d个数",i+1);
scanf("%d",&a[i]);
}
for(i=1;i<10;i++)
b[i-1]=a[i]-a[i-1];
for(i=0;i<9;i++)
{
if(i%3==0)printf(" ");
printf("%d ",b[i]);
}
}运行结果:
学习是要用心的,多动脑,多思考学到的东西才是自己的。喔,对了给分哟!!!!!