admin管理员组文章数量:1596344
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‟+1
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];
版权声明:本文标题:DLUT计算机校二级模拟考试试题二 内容由热心网友自发贡献,该文观点仅代表作者本人,
转载请联系作者并注明出处:https://www.elefans.com/xitong/1716042256a483218.html,
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论