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

更新时间:2023-07-17 14:24:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言,二级考试试题,大连理工大学

DLUT计算机校二级模拟考试试题二一.判断题 NYNYN YNNNY

1. 用宏可以得到也仅能得到一个返回值。 没有返回值,也不传递值带参数的宏没有固定数据类型,可以使任意数据类型

3. 二维数组在内存中存贮时,是按下标值递增且左侧的下标比右侧的下标变化快的顺序连续存贮各元素的值。 二维数组按行优先原则进行存储

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 内。

二.选择题 BAACC ACBAD BDBCA

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

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

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

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

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

A.x=y 赋值 B. a +1<c C.m>n+1 D.x!=x+y

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

fun(int x, int y, int z)

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

main( )

{ int a=31;

C语言,二级考试试题,大连理工大学

fun(5,2,a);

printf("%d", a);

}

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

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

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;} B.max=i;continue; C.{max=i;break;} D. max=i;break;

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

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];选择正确的输入语句__C__。

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 选择正确的键盘输入方法__B__。

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

main()

{ int i,k;

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

}

C语言,二级考试试题,大连理工大学

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

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

char ch='a';

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C:static放在函数定义的函数名之前,使函数只能被本文件中的函数调用 D:static放在定义的寄存器变量前,寄存器变量放在静态存储区

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

main( )

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

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

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

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. 以下程序段给数组所有的元素输入数据,请选择正确答案填入。A

C语言,二级考试试题,大连理工大学

#include <stdio.h>

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.2f\n",a,b,c,s);

printf ("area=%7.2f\n",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;

}

}

C语言,二级考试试题,大连理工大学

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

#include <stdio.h>

#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<N;i++)

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

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

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

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

}

___B___;

C语言,二级考试试题,大连理工大学

}

print(stu)

struct student stu[N];

{int i,j;

printf("\nnum name score1 score2 score3\n");

for(i=0;i<N;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<n-1; i++)

{

int max=i;

for(j=i+1; j<n; j++)

if(____A___)

max=____B___;

if(j!=max)

{

int t=a[max];

a[max]=a[i];

a[i]=t;

}

}

}

四.阅读程序题.

C语言,二级考试试题,大连理工大学

1. #include <stdio.h>

main()

{ int a,b,c,x=4,y=6,z=8;

int *p1=&x,*p2=&y,*p3;

a=p1==&x;

b=3*(-*p1)/(*p2)+7;

c=*(p3=&z)=*p1*(*p2);

printf("%d,%d,%d",a,b,c);

}

2. 阅读以下程序,写出程序的运行结果。

main()

{ int a=2,b=3;

printf("%d," , fun(a,b));

printf("%d\n", fun(b,a));

}

fun(int x, int y)

{ static int m=0, i=2;

i+=m+1;

m=i+x+y;

return m;

}

3. (答案中规定,若有空格,则用大写字符U表示空格)

main()

{

int a,b;

printf("Input a ,b:\n");

scanf("a=%d,b=%d", &a,&b);

printf("max=%-4d",(a>b)?a:b);

} 输入a=10,b=20[CR]

4. 阅读本程序并写出程序的运行结果: ([CR] 表示回车)

C语言,二级考试试题,大连理工大学

main()

{int I=0,x[3][3]={1,2,4,4,1,6,7,0,9};

for(;;)

{if(I>2) break;

printf("%d",x[I][2-I]);

I++;

}

}

5. 写出下面程序的运行结果。

main()

{

int a=10,y=0;

printf("\n");

do{

a+=2;y+=a;

if(y>50) break;

}while(a!=10);

printf("a=%d,y=%d",a,y); }

五.程序改错题

1. 从n个学生的成绩中统计出不小于平均分的学生人数,此人数由函数值返回。 int fun(float *s,int n)

{float ave;

float t=0;

int count,k,i;

for(k=0;k<n;k++) t+=s[k];

ave=t/n;

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

if(s[i]==ave)

count++;

C语言,二级考试试题,大连理工大学

return count;

}

2. 打印出100~200间(包括100和200)所有不能被3整除的数。 main()

{ int n;

for(n=100;n<=200;n++)

{

if(n%3=0)

break;

printf("%3d",n);

}

}

六.程序编写题

/*请编写函数ppp(int m) */ /*功能:在1到m的自然数中,求同时能被3和5整除的各数之总和. */ /*注意:请勿修改main()和其它函数中的任何内容, */ /* 仅在答题区中填入你的语句 */

#include "stdio.h"

#include "string.h"

#include "conio.h"

FILE *fp;

ppp(int m)

{

/******************** 答题区开始 **************************/ /******************** 答题区结束 *************************/ }

main()

{int ss,nn=172,mm=323;

C语言,二级考试试题,大连理工大学

ss=ppp(nn)+mm;

fp=fopen("JG.DAT","wb");

fprintf(fp, "%d",3*ss);

fclose(fp);

}

参考答案

一.NYNYN YNNNY

二.BAACC ACBAD BDBCA

三. 1.a[j]<a[max] 或 a[max]>a[j] j

2.break continue

3.(a)*(b)或(b)*(a) scanf(“%f”, &b);

4.stu[N]或stu[5] print(stu)

5. a[j]<a[max]或a[max]>a[j] j

四.1. a=18,y=60 2.8,17 3.max=20 4.417 5.a=18,y=60

五. 1. 出错语句1: int count,k,i; 正确答案1:int count=0,k,i;

出错语句2:if(s[i]==ave) 正确答案2:if(s[i]>=ave)或if(ave<=s[i])

2. 出错语句1: if(n%3=0) 正确答案1: if(n%3==0)

出错语句2: break 正确答案2: continue

六.3939

本文来源:https://www.bwwdw.com/article/k8a1.html

Top