通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
有以下程序
#include <stdio.h> void fun (int a, int b) { int t; t=a; a=b; b=t; } main() { int c[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, i; for (i=0; i<10; i+=2) fun (c[i], c[i+1]); for(i=0; i<10; i++) printf("%d,", c[i]); printf("\n"); }
程序的运行结果是
2,1,4,3,6,5,8,7,0,9,
0,9,8,7,6,5,4,3,2,1,
1,2,3,4,5,6,7,8,9,0,
0,1,2,3,4,5,6,7,8,9,
第2题
在长度为n的顺序表中查找一个元素,假设需要查找的元素一定在表中,并且元素出现在表中每个位置上的可能性是相同的,则在平均情况下需要比较的次数为
(n+1)/2
n
3n/4
n/4
第3题
void fun (int a[], int n) { int i, t; for (i=0; i<n/2; i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } } main() { int k[10]={1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2;i<8;i++) printf("%d",k[i]); printf("\n"); }
876543
321678
1098765
345678
第4题
数据库系统的三级模式不包括
概念模式
内模式
外模式
数据模式
第5题
#include<stdio.h> int fun(int a, int b) { if (b==0) return a; else return(fun (--a, --b)); } main() { printf("%d\n", fun(4, 2)); }
1
2
3
4
第6题
表达式3.6-5/2+1.2+5%2的值是
4.8
3.3
3.8
4.3
第7题
下面不属于软件需求分析阶段主要工作的是
需求变更申请
需求分析
需求评审
需求获取
第8题
若有定义int a;float b;double c;程序运行时输入:345能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是
scanf("%d%lf%lf",&a,&b,&c);
scanf("%d%f%If",&a,&b,&c);
scanf("%d%f%f",&a,&b,&c);
scanf("%If%lf%lf",&a,&b,&c);
第9题
以下叙述中正确的是
可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C语言程序将从源程序中第一个函数开始执行
main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等
C语言规定必须用main作为主函数名,程序将从此开始执行
第10题
有以下程序段
int i, n; for (i=0;i<8;i++) { n=rand()%5; switch (n) { case 1: case 3: printf("%d\n", n); break ; case 2: case 4: printf("%d\n", n); continue; case O: exit(0); } printf("%d\n", n); }
以下关于程序段执行情况的叙述,正确的是
当产生的随机数n为4时结束循环操作
当产生的随机数n为1和2时不做任何操作
当产生的随机数n为0时结束程序运行
for循环语句固定执行8次
第11题
以下选项中,不合法的C语言用户标识符是
AaBс
a-b
a_b
_1
第12题
深度为5的完全二叉树的结点数不可能是
15
16
17
18
第13题
某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为
EFGDCBAO
DCBEFGAO
BCDGFEA
DCBGFEA
第14题
在长度为n的顺序表中查找一个元素,假设需要查找的元素有一半的机会在表中,并且如果元素在表中,则出现在表中每个位置上的可能性是相同的。则在平均情况下需要比较的次数大约为
(3+ n)/4
n/2
第15题
在结构化程序设计中,模块划分的原则是
各模块应包括尽量多的功能
各模块的规模应尽量大
各模块之间的联系应尽量紧密
模块内具有高内聚度、模块间具有低耦合度
第16题
C语言源程序名的后缀是
exe
obj
c
cp
第17题
main() { int x=35,B; char z='B'; B=((x)&&(z<'b')); printf("%d\n",B); }
程序运行后的输出结果是
0
35
66
第18题
有下列程序:
#include <stdio.h> #include <string.h> typedef struct { char name[9]; char sex; float score [2]; }STU; STU f(STU a) { STU b = {"Zhao",'m',85.0,90.0}; int i; strcpy(a.name,b.name) a.sex=b.sex; for(i = 0; i <2; i + +) a.score[i]= b.score[i]; return a; } main() { STU c ={"Qian",'f',95.0,92.0},d; d = f(c); printf("%s,%c,%2.0f,%2.0f\n"),d.neme,d.sex,d.score[0],d.score[1]; }
Qian,m,85,90
Zhao,f,95,92
Zhao,m,85,90
Qian,f,95,92
第19题
设二叉树的前序序列与中序序列均为ABCDEFGH,则该二叉树的后序序列为
HGFEDCBAO
ABCDEFGHО
ABCDHGFE
DCBAHGFE
第20题
在数据库系统中,考虑数据库实现的数据模型是
概念数据模型
逻辑数据模型
物理数据模型
结构数据类型
第21题
#include <stdio.h> main() { int x=8; for(;x>0;x--) { if(x%3){printf("%d,",x--);continue;} printf("%d,",--x); } }
8,7,5,2,
9,7,6,4,
7,4,2,
8,5,4,2,
第22题
在E-R图中,用来表示实体间联系的图形是
椭园形
矩形
菱形
三角形
第23题
有下列程序
#include <stdio.h> void fun (int *a, int n)/*fun函数的功能是将a所指数组元素从大到小排序*/ { int t,i,j; for (i=0;i<n-1;j++) for (j=i+1;j<n;j++) if(a[i]<a[j) {t=a[i];a[i]=a[j];a[j]=t;}} main() { int c[10]={1,2,3,4,5,6,7,8,9,0},i; fun(c+4,6); for(i=0;i<10;i++) printf("%d,", c[i]; printf("\n"); }
1,2,3,4,9,8,7,6,5,0,
0,9,8,7,6,5,1,2,3,4,
第24题
main() { int y=10; while(y--); printf("y=%d\n",y); }
程序执行后的输出结果是
y=0
y=1
y=-1
while构成无限循环
第25题
阅读以下程序
#include <stdio.h> main() { int case; float printF; printf("Please enter 2 numbers:"); scanf("%d %f",&case,&printF); printf("%d %f\n",case,printF); }
该程序在编译时产生错误,其出错原因是
定义语句出错,printF不能用作用户自定义标识符
定义语句出错,case是关键字,不能用作用户自定义标识符
定义语句无错,scanf不能作为输入函数使用
定义语句无错,printf不能输出case的值
第26题
设某二叉树中共有140个结点,其中有40个度为1的结点。则
该二叉树中有51个叶子结点
该二叉树中有50个叶子结点
该二叉树中有51个度为2的结点
不可能有这样的二叉树
第27题
学院的每名教师只能属于一个系,则实体系和实体教师间的联系是
一对多
多对多
多对一
—对一
第28题
下列叙述中正确的是
结点中具有两个指针域的链表一定是二叉链表
结点中具有两个指针域的链表可以是线性结构,也可以是非线性结构
二叉树只能采用链式存储结构
循环链表是非线性结构
第29题
线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有
节省存储空间
插入与删除运算效率高
便于查找
排序时减少元素的比较次数
第30题
设fp为指向某二进制文件的指针,且已读到此文件未尾,则函数feof(fp)的返回值为
'\0'
NULL
非0值
第31题
下面描述中正确的是
好的软件设计应是高内聚低耦合
内聚性和耦合性无关
内聚性是指多个模块间相互连接的紧密程度
耦合性是指一个模块内部各部分彼此结合的紧密程度
第32题
#include <stdio.h> int b=2; int fun(int *k) { b=*k+b; return(b); } main() { int a[10]={1, 2, 3, 4, 5, 6, 7, 8}, i ; for (i=2;i<4;i++) { b=fun(&a[i]+b; printf("%d",b); } printf("\n"); }
8 10
10 28
10 12
10 16
第33题
有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数)
#include <stdio.h> #include <string.h> main() { char a[10]="abc", b[10]="012", c[10]="xyz"; strcpy (a+1, b+2); puts (strcat (a, c+1); }
bc2yz
a2yz
a12xyz
12yz
第34题
struct S(int a; int b;}; main() { struct S a,*p=&a; a.a=99; printf("%d\n",___); }
程序要求输出结构体中成员a的数据,以下不能填入横线处的内容是
a.a
*p.a
р->а
(*p).a
第35题
以下不能将s所指字符串正确复制到t所指存储空间的是
for(i=0;t[ ij=s[j];i++);
while(*t=*s){t++;s++}
for(i=0.j-0;t[i++]=s[j++];);
dof*t++=*s++:} while(*s);
第36题
不属于对象构成成份的是
规则
属性
标识
方法
第37题
某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的深度为
5
第38题
#include <stdio.h> struct tt {int x;struct tt *y; *p}; struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a}; main() { int i; p=a; for(i=1;i<=2;i++) { printf("%d,",p->x); p=p->y; } }
20,15,
30,17
15,30,
20,30,
第39题
设有定义:int x=2;以下表达式中,值不为6的是
2*x,x+=2
x++,2*x
x*=(1+x)
x*=x+1
第40题
若有以下程序
#define S(x) x*x #define T(x) S(x)*s(x) main() { int k=5, j=2; printf("%d,%d\n",S(k+j),T(k+j)); }
则程序的输出结果是
17,37
49,2401
17,289
49,289
第41题
函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返
回。例如,当a=3, b=5, c=4时,中数为4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
int fun(int a, int b, int c) { int t; t = (a>b) ? (b>c? b :(a>c?c:___1___)) : ((a>c)?___2___ : ((b>c)?c:___3___)); return t; }
第42题
给定程序中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21,转换后的小写字母作为函数值返回例如,若形参是字母A,则转换为小写字母;若形参是字母W,则转换为小写字母b。
请改正程序中的错误,使它能得出正确的结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h> #include<stype.h> char fun(char c) { /********found********/ if (c>= 'A' && c<='Z') c = c-32; /********found********/ if (c>='a' && c<='u') c = c-5; else if (c>='v' && c<='z') c = c-21; return c; } main ( ) { char cl, c2; printf("\nEnter a letter(A-Z):"); cl = get char( ); if (isupper(cl)) { c2 = fun(cl); printf("\n k nThe letter %c change to %c\n",cl,c2); } else { printf("\nEnter (A-Z) !\n"); } }
第43题
请编写函数fun,其功能是:计算并输出:s=1+(1+根号2)+(1+根号2+根号3)+....+(1+根号12+根号3+...+根号n)(要求n的值大于1但不大于100)
例如,在主函数中从键盘给n输入20后,输出为:s=534.188884
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <math.h> #include <stdio.h> double fun(int n) { } main () { int n; double s; printf("\n\nlnput n: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n\n",s); NONO(); ) NONO () {/*请在此函数内打开文件,输入测试数据, 调用fun函数,输出数据,关闭文件.*/ FILE *rf, *wf; int n, i; double s; rf = fopen("in.dat", "r"); wf - fopen("out.dat",“w”); for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%d", &n); s = fun(n); fprintf(wf, ”%lf\n", s); fclose(rf); fclose(wf); } }
选择题(0 - 40题,共计40分) 填空题(包括程序填空题,程序修改题,程序设计题)(41-43题 共计60分)