好文档 - 专业文书写作范文服务资料分享网站

c语言期末试卷备课讲稿

天下 分享 时间: 加入收藏 我要投稿 点赞

学习资料

《C语言程序设计A》试卷(B卷)

班级 学号 姓名

一、选择题:(每题1分,共计20分)

1、C语言规定:在一个源程序中,main函数的位置( C )。

A)必须在最开始

B)必须在系统调用的库函数的后面

C)可以任意

D)必须在最后

2、设a为5,执行下列语句后,b的值不为2的是( C )。 A) b=a/2 B) b=6-(--a)

C) b=a%2 D) b=a>3?2:1

3、 若a=-14,b=3,则条件表达式 a

A) -14 B) -13 C) 3 D) 4

4、 已知:int n,i=1,j=2;执行语句n=i

A) 1,2 B) 1,3 C) 2,2 D) 2,3

5、函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为

( )。

A) 1 B) 2 C) 4 D) 5 、以下正确的描述是( )。 A)函数的定义可以嵌套,但函数的调用不可以嵌套。 B)函数的定义不可以嵌套,但函数的调用可以嵌套。

C)函数的定义和函数的调用均不可以嵌套。

D)函数的定义和函数的调用均可以嵌套。

7、 在C语言中,下面对函数不正确的描述是( )。

A)当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。 B)允许函数递归调用。 仅供学习与参考

C)函数形参的作用范围只是局限于所定义的函数内。

D)子函数必须位于主函数之前。

8、 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。

A)该变量只在该复合语句中有效

B)该变量在该函数中有效

C)该变量在本程序范围内均有效 D)该变量为非法变量

9、若x=4,则x*=x+2的值为( )。

A) 36 B) 24 C) 18 D) 20

10、下列能正确定义整型变量a、b和c并为其赋的值1的语句是( )。

A) int a=b=c=1; B) int a,b,c=1 C) a=b=c=1; D) int a=1,b=1,c=1

11、以下关于宏替换的叙述不正确的是( )。

A) 宏替换只是字符替换 B) 宏名无类型

C) 宏替换不占用运行时间 D) 宏替换不占用编译时间

12、有以下程序段

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5];

b中的值是( )。

A) 5 B) 6 C) 8 D) 9 13、 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。main()

{ int *p,*q,a,b; p=&a;

printf(\

scanf(\…

}

A) *p表示的是指针变量p的地址

B) *p表示的是变量a 的值,而不是变量a的地址 C) *p表示的是指针变量p的值 D) *p只能用来说明p是一个指针变量 6学习资料

14、 若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为( )。

A) 4 B) 16 C) 32 D) 52

5、 形参为指针变量时,实参必须是数组名。 ( ) 6、 用数组名作函数参数时传递的是数组的值。 ( ) 7、 全局变量可以被任何一个函数中的任何一个表达式使用。 ( ) 8、 一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。( ) 9、 表达式i++与++i在任何场合功能完全相同。 ( ) 10、赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。( )

15、假设指针p已经指向某个整型变量x,则*p相当于( )。

A) &x B) &p C) x D) *x

16、 若有说明:int a[10]; 则对a数组元素的正确引用是( )。

A) a[10] B) a[3.5] C) a[5-3] D) a[-1]

17、 在C语言中, 一维数组的定义方式为: 类型说明符 数组名( );

A) [整型常量表达式] B) [表达式]

C) [整型常量] D) [整型表达式]

18、 以下能对一维数组a进行正确初始化的语句是( )。

A) in a[10]=(0,0.0,0,0); B) int a[10]={};

C) int a[]={0}; D)int a[10]={10*1};

19、假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中

正确的是( )。

A) p2=**p1 B) p2=*&p1

C) p2=*p1 D) p2=&*p1

20、 以下关于do-while循环的不正确描述是( )。

A)do-while的循环体至少执行一次

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C)在do-while循环体中,一定要有能使while后面表达式的值变为零(\假\的操作。 D)do-while的循环体可以是复合语句。

二、判断题(每题1分,共计10分)

1、在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效。 ( ) 2、字符串作为一维数组存放在内存中。 ( ) 3、 字符数组中的一个元素存放一个字符。 ( ) 4、 字符数组中的最后一个字符必须是'\\0'。 ( ) 仅供学习与参考

三、填空题:(每空2分,共40分)

1、 在C语言中,一个float型数据在内存中所占的字节数为 4 个字节, C源程序的基本单位是 函数 .

2、 算法表示的时候使用的三种基本结构是 顺序,选择,循环(3) 。

3、以下程序运行后的输出结果是 ___ 25 21 37__ 。

main( )

{ int a,b,c; a=25; b=025; c=0x25;

printf(\ }

4、以下程序运行后的输出结果是 gae 。

main ()

{ char a[ ]=\ char *p1,*p2; int k; p1=a; p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k)) printf(\ }

5、 已有定义: int m; float n,k; char chl,ch2;

为使m=3, n=6.5, k=12.6, ch1='a', ch2='A', 输入数据的格式为: 3 6.5 12.6aA 则对应的scanf语

学习资料

scanf(\

6、计算sum=1+1/2+1/4+...+1/50的值,并显示出来。 #include main() {

int i=2;

float sum=1.0; while(i<= 50 ) {

sum+=1/ (float)I ;

i+=2; }

printf(\}

7、下面程序的功能是把以下给定的字符按其矩阵格式读入数组str1中,并输出行列号之和是3的数组元素。 void main(void) {

char str1[4][3]={'A','b','C','d','E','f','G','h','I','j','K','i'}; int x,y,z;

for(x=0;x<4;x++)

for(y=0; y<3 ;y++) {

z=x+y;

if ( z==3 ) printf(\ }

}

8、 通过函数求f(x)的累加和,其中f(x)=x2

+1

main() {

printf(\}

SunFun(int n) 仅供学习与参考

{

int x,s=0;

for(x=0;x<=n;x++) s+=F(____ x ____); return s; }

F( int x)

{ return ______ x*x+1______;}

9、以下程序运行后的输出结果是 __ 1*3*5*7*9 ____。

main()

{ char a[]=\ p=a;

while(*p)

{ if(i%2==0) *p='*’; p++;i++; }

puts(a); }

10、 若有以下定义和语句: int *p[3],a[9],i;

for(i=0;i<3;i++) p[i]=&a[3*i];

则*p[0]引用的是数组元素 a[0] ; *(p[1]+1)引用的是数组元素 a[4] 。

11、以下程序输入整数a,b的值,然后交换a,b的值,并输出交换后的结果。 void swap(int *a, int *b) { int t; t=*a;

_______*a=*b______ _______*b=t;_______ } main()

{ int a,b;

scanf(″%d,%d″,&a,&b); swap(&a,&b)

printf(″a=%d,b=%d″,a,b); }

学习资料

12、下面程序的功能是用函数递归方法计算菲波那契数列,请填空完善之。 main() { int n,m;

scanf(″%d″,&n);

m=________ fibo(n) _______; printf(″%d″,m); }

int fibo(n); int n;

{ if(n==1) _____return(o)________; else if(n==2) return(1);

else return (______fibo(n-2)+fibo(n-1)_______); }

四、编程题(每题10分,共30分)

1、打印出以下的杨辉三角形(要求打印出10行)(10分)

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 . . . . . . . . . . . . . . . . . . . . .

main ( )

仅供学习与参考

{ int i,j,row=0,colum=0,max,temp; int a[4][4];

for (i=0;i<=3;i++) for (j=0;j<=3;j++)

scanf(\分)

for (i=0;i<=3;i++) for (j=0;j<=3;j++)

{printf(\

if (j==3) printf(\分)

max=a[0][0];

for (i=0;i<=3;i++)

for (j=0;j<=3;j++) if (a[i][j]>max) {max=a[i][j]; row=i;

colum=j;} (2分)

temp=max; max=a[0][0];

a[0][0]=temp; (2 分)

printf(\

for (i=0;i<=3;i++) for (j=0;j<=3;j++)

{printf(\ if (j==3) printf(\

2、用“冒泡法”对输入的10个字符按照从小到大的顺序排列(要求通过函数调用实现).(10分)

#define N 10 char str[ ]; main( )

{ void sort (char str[ ]); (1分) int i,flag; for (flag=1;flag==1)

{ printf(”\\nInput String:\\n”);

学习资料

scanf(“%s”,&str); (2分) printf(“\\nInput n & x:”); if (strlen(str)>N) scanf(“%d,%d”,&n,&x); printf(“String too long,Input again!”); (1分) printf(“n=%d,x=%d”,n,x); (2分) else printf(“P%d(%d)=%6.2f”,n,x,p(n,x)); (1分) flag=0; } }

sort(str); (1分) float p(int n,int x) printf(“String sorted:\\n”); for (I=0;I

char t;

for(j=1;j

for (i=0;(I

if (str[i]>str[i+1])

{ t=str[i];

str[i]=str[i+1];

str[i+1]=t; }

}

3、用递归的方法求N阶勒让德多项式的值,递归公式为: (10分)

1 (n= 0)

Pn(x)= x (n= 1)

((2n-1)*x-Pn-1(x)-(n-1)*Pn-2(x))/n (n>=1)

main( ) { int x,n;

float p(int,int); (2分)

仅供学习与参考

{ if (n==0) return(1); else if (n==1) return (x); else return (((2*n-1)*x*p((n-1),x-(n-1)*p((n-2),x))/n); } (5分)

c语言期末试卷备课讲稿

学习资料《C语言程序设计A》试卷(B卷)班级学号姓名一、选择题:(每题1分,共计20分)1、C语言规定:在一个源程序中,main函数的位置(C)。A)必须在最开始B)必须在系统调用的库函数的
推荐度:
点击下载文档文档为doc格式
3rdhk373096trx01723y3gzju6vsv000dmn
领取福利

微信扫码领取福利

微信扫码分享