admin管理员组

文章数量:1531692

2024年5月18日发(作者:)

DLUT计算机校二级模拟考试试题二

.判断题

1. 用宏可以得到也仅能得到一个返回值。

2. 在一个源程序中,main函数的位置可以任意

3. 二维数组在内存中存贮时,是按下标值递增且左侧的下标比右侧的下标变化快的顺序连

续存贮各元素的值。

4.设指针变量已经指向一个有效地址,则表达式 &*p==p 的结果为真。

5. 若定义 int array[5] , *p=array ; 则赋值语句 p=&array;是正确的。

6. 求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b

赋给max。

7. 在do-while循环中,根据情况可以省略while。

8. for语句的循环体至少执行一次。

9. putchar 函数的原型(函数说明)在string .h 内。

10. 在一个函数中定义的静态局部变量不能被另外一个函数所调用。

二.选择题

1. 字符串""ABC""的长度是:_________。

A. 11 B.7 C.5 D.3

2.已知字母A的ASCII码为十进制数65,且c为字符型,则执行语句c='A'+'6'-'3'; 后,

c中的值为:_____。

A.D B.d C.不确定的值 D.c

3. 不合法的关系表达式是:( )

A.x=y B.‟a‟+1n+1 D.x!=x+y

4. 以下程序的输出结果是:______

fun(int x, int y, int z)

{ z=x*x+y*y; }

main( )

{ int a=31;

fun(5,2,a);

printf("%d", a);

}

A.0 B.29 C.31 D.无定值

5. 能够完成求出两个正整数a,b最小公倍数max的程序段。请在A处填写正确内容。

if(a>=b) t=a;

else t=b;

for(i=t; ;i++)

if(i%a==0&&i%b==0)

___A___

printf("%d",max);

A.{max=i;continue;} =i;continue; C.{max=i;break;} D. max=i;break;

6. 执行以下程序段后的y值是 ______ 。

int a[ ]={1,3,5,7,9}, y,x,*ptr;

y=1;

ptr=&a[1];

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

y*=*(ptr+x);

A.105 B.15 C. 945 D.无确定值

7. 已定义 char str1, str2[10];选择正确的输入语句____。

A.scanf(“%c%s”,strl1,str2);

B.scanf(“%c%s”,strl1,&str2);

C. scanf(“%c%s”,&strl1,str2);

D. scanf(“%c%s”,&strl1,&str2);

8. 用下面的scanf函数输入数据,使得i=10, k=15 选择正确的键盘输入方法____。

(用"[CR]"表示回车,U表示空格)

main()

{ int i,k;

scanf("i=%d,k=%d",&i,&k);

}

A.10,15[CR] B.i=10 ,k=15[CR] C. 10U15[CR] D.i=10[CR]K=15[CR]

9. 执行下面程序段后,ch的值是:( )

char ch='a';

ch=(ch>='A'&&ch<='Z')?(ch+32):ch;

A.a B.A C.Z D.z

10. 下面有关for(表达式1;表达式2;表达式3)循环的正确描述是:

A.for循环只能用与循环次数已知的情况下

B.for循环是先执行循环体内语句,后判断表达式1

C. for循环体中不允许嵌套除for以外的循环结构

循环体内中的多余语句必须用“{}”括起才能被全部执行

11. 在Turbo C 运行环境下,下列说法中正确的是______。

A.双括号中字符串的字符,如果与宏名相同,就要替换

B.双括号中字符串的字符,即使与宏名相同,也不替换

C. 调用函数可以得到个返回值

D.用宏定义不可以得到多个返回值

12. 以下叙述不正确的是______。

A. static放在定义的局部变量前,使变量存放在静态存储区

B:static放在定义的外部变量前,使变量只能被本文件中的函数引用

C:static放在函数定义的函数名之前,使函数只能被本文件中的函数调用

D:static放在定义的寄存器变量前,寄存器变量放在静态存储区

13以下程序的输出结果是 _____ 。

main( )

{char str[ ]="ABCD",*p=str; printf("%dn",*(p+3));}

A.0 B.68 C. 字符D的地址 D.不确定的值

14. 下述函数段中,______含有错误。

A.int f(){int x; scanf(“%d”, &x); return x++ ,1; }

B.int f(){return (x>1?printf(“R” ): putchar(„r‟) );}

C. main ( ){float x=3.5; float y=fmax(2.0,3.0)=x++;}

D. void Rep{int *x,int *y} {int t=*x;*x=*y; *y=t;}

15. 以下程序段给数组所有的元素输入数据,请选择正确答案填入。

#include

main()

{ int a[10],i=0;

while(i<10) scanf("%d",(_______));

.

.

.

}

A.a+(i++) B.&a[i++] C. a+i D.&a[++i]

三.完善程序题

1. 输入三角形三边a,b,c,求面积area为根号下s(s-a)(s-b)(s-c) ,其中s=(a+b+c)/2 。

#include" _A_ "

main( )

{float a,b,c,s,area;

scanf("%f,%f,%f",&a,&b,&c);

s= _B_ /2*(a+b+c);

area = sqrt (s*(s-a)*(s-b)*(s-c));

printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn",a,b,c,s);

printf ("area=%7.2fn",area );

}

2.程序最多从键盘上输入100个字符,遇到“空”字符(即'0')则退出,遇到空格则跳

过,其它字符依次送入字符数组c[ ]中。

#include"stdio.h"

main()

{int I;char ch,c[100];

for(I=0;I<100;I++)

{if((ch=getchar())=='0')

____A____ ;

if(ch==' ')

____B____ ;

c[I]=ch;

}

}

3. 求两个长方形的面积.

#include

#define S(a,b) ___A___

main()

{

float a,b,s1,s2;

scanf("%f",&a);

___B___

s1=S(a,b);

s2=S(a,3+b);

printf("s1=%f,s2=%f.n",s1,s2);

}

4. 完善程序:下列程序用于打印学生的成绩数组,该数组中有5个学生的数据记录,每个

记录包括学号num、姓名name、三门成绩score[3]。在主函数输入这些记录,用print函

数输出这些记录。

#define N 5

struct student

{char num[6];

char name[8];

int score[4];

} ___A___;

main()

{int i,j;

for(i=0;i

{scanf("%s",stu[i].num);

scanf("%s",stu[i].name);

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

scanf("%d",&stu[i].score[j]);

}

___B___;

}

print(stu)

struct student stu[N];

{int i,j;

printf("nnum name score1 score2 score3n");

for(i=0;i

{printf("%8s%10s",stu[i].num,stu[i].name);

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

printf("%7d",stu[i].score[j]);

printf("n");

}

}

5. 以下函数用选择排序法对数组a的元素由小到大排序,请填空。

void func(int a[ ], int n)

{ int i, j;

for(i=0; i

{

int max=i;

for(j=i+1; j

if(____A___)

max=____B___;

if(j!=max)

{

int t=a[max];

本文标签: 函数表达式循环数组输入