试卷详情
-
二级C语言笔试-162
-
[单项选择]下面程序段的执行结果是( )。
int x=10;
for(;x;x--)
if(x%3)
continue;
printf("%d",x);
A. 875421
B. 963
C. 741
D. 852
-
[单项选择]
(48)~(50)以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。
#include <stdlib.h>
struct node
char data; struct node *next;;
(48) CreatList(char *s)
struct node *h,*p,*q;
h=(struct node *)malloc(sizeof(Struct node));
p=q=h;
while(*s!=‘//0’)
p=(struct node *)malloc(sizeof(struct node));
p->data=(49);
q->next=p;
q=(50);
s++;
p->next=0;
return h;
main( )
char str[]="link list";
struct node *head;
head=CreatList(str);
A. char*
B. stmct node
C. strumnode*
D. char
-
[单项选择]对于白箱(盒)测试用例的各设计准则,下列叙述中正确的是( )。
A. 分支覆盖准则比语句覆盖准则严密
B. 条件覆盖要比分支覆盖优越。因此,条件覆盖能完全满足分支覆盖
C. 组合条件覆盖准则既能满足分支覆盖准则,也能满足条件覆盖准则。因此,组合条件覆盖准则是一种完全测试
D. 上述说法都不对
-
[简答题]有以下程序:
struct STU
char name[10];
int num;
;
void f1(struct STU c)
struct STU b="LiSiGuo",2042);
c=b;
void f2(struct STU *c)
struct STU b="SunDan",2044);
*c=b;
main( )
struct STU a="YangSan",2041,b="WangYin",2043);
f1(
-
[单项选择]有以下程序:
int f(int n)
if(n==1) return 1;
else return f(n-1)+1;
main( )
int i,j=0;
for(i=1; i<3; i++) j+=f(i);
printf("%d/n",j);
程序运行后的输出结果是( )。
A. 4
B. 3
C. 2
D. 1
-
[单项选择]有以下程序:
main( )
int s=0,a=1,n;
scanf("%d",&n);
do
s+=1; a=a-2;
while (a!=n);
printf("%d/n",s);
若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
A. -1
B. -3
C. -5
D. 0
-
[单项选择]在深度为6的满二叉树中,结点的个数为( )。
A. 32
B. 31
C. 16
D. 15
-
[单项选择]若有以下定义和语句:
#include<stdio.h>
int a=4,b=3,*p,*q,*w;
p=&a; q=&b; w=q; q=NULL;
则以下选项中错误的语句是( )。
A. *q=0;
B. w=p;
C. *p=a;
D. *p=*w;
-
[单项选择]有以下程序:
#include <stdio.h>
#define F(X,Y)(X)*(Y)
main( )
int a=3,b=4;
printf("%d/n",F(a++,b++));
程序运行后的输出结果是( )。
A. 12
B. 15
C. 16
D. 20
-
[填空题]已有定义如下:
struct node
int data;
struct node *next;
*p;
以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。
p=(struct node *)malloc( 【19】 );
-
[单项选择]以下叙述中正确的是( )。
-
[填空题]以下程序运行后的输出结果是 【18】 。
fun(int x)
if(x/2>0)fun(x/2);
printf("%d ",x);
main( )
fun(6);
-
[单项选择]有以下程序:
main( )
int x=3,y=2,z=1;
printf("%d/n",x/y&~z);
程序运行后的输出结果是( )。
A. 3
B. 2
C. 1
D. 0
-
[单项选择]以下定义语句中正确的是( )。
-
[填空题]在最坏情况下,冒泡排序所需要的比较次数为 【1】 。
-
[填空题]在面向对象方法中,信息隐蔽是通过对象的 【2】 性来实现的。
-
[单项选择]有以下程序:
main( )
char *S[]="one","two","three",*p;
p=s[1];
printf("%c,%s/n", *(p+1), s[0]);
执行后输出结果是( )。
A. n,two
B. t,one
C. w,one
D. o,two
-
[单项选择]有以下程序:
main( )
char a='a',b;
printf("%c,",++
A. ;
-
[填空题]下面程序的运行结果是 【17】 。
typedef union student
char name[10];
long sno;
char sex;
float score[4];
STU;
main( )
STU a[5];
printf("%d/n",sizeof(a));
-
[填空题]下面程序的功能是输出数组中最大的数,由a指针指向该元素。请填空。
main( )
int s[]=6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;
for( 【7】 )
if(*a<*b) a=b;
printf("%d",*a);
-
[单项选择]下列叙述中正确的是( )。
A. 数据库设计是指设计数据库系统
B. 数据库设计是指设计数据库管理系统
C. 数据库设计是指在已有数据库管理系统的基础上建立数据库
D. 以上三种说法都不对
-
[单项选择]关系数据库管理系统能实现的专门关系运算包括( )。
A. 排序、索引、统计
B. 选择、投影、连接
C. 关联、更新、排序
D. 显示、打印、制表
-
[单项选择]若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( )。
A. for(i=1,p=1;i<=5;i++) p*=i;
B. for(i=1;i<=5;i++)p=1; p*=i;
C. i=1;p=1;while(i<=5)p*=i; i++;
D. i=1;p=1;dop*=i;i++;while(i<=5)
-
[填空题]软件生命周期包括8个阶段。为使各时期的任务更明确,又可以分为以下3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于 【3】 期。
-
[单项选择]有以下程序:
main( )
int i=10,j=1;
printf("%d,%d/n",i--,++j);
执行后输出结果是( )。
A. 9,2
B. 10,2
C. 9,1
D. 10,1
-
[填空题]在关系运算中, 【5】 运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
-
[单项选择]设有以下定义和语句:
int a[3][2]=1,2,3,4,5,6,), *p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是( )。
A. a[0][1]
B. a[1][0]
C. a[1][1]
D. a[1][2]
-
[单项选择]设有以下语句:
typedef struct S
int g; char h; T;
则下面叙述中正确的是( )。
-
[单项选择]结构化程序由3种基本结构组成,3种基本结构组成的算法( )。
A. 可以完成任何复杂的任务
B. 只能完成部分复杂的任务
C. 只能完成符合结构化的任务
D. 只能完成一些简单的任务
-
[单项选择]有以下程序:
main( )
int x=102, y=012;
printf("%2d,%2d/n",x,y);
执行后输出结果是( )。
A. 10,01
B. 02,12
C. 102,10
D. 02,10
-
[单项选择]有定义语句:“int a=1,b=2,c=3,x;”,则以下选项中各程序段执行后,x的值不为3的是( )。
A. if(c<a)x=1;
B. if(a<3)x=3;
C. if(a<3)x=3;
D. if(a<b)x=b;
-
[单项选择]有以下程序段:
main( )
int a=5, *b, **c;
c=&b; b=&a;
程序在执行了“c=&b;b=&a;”语句后,表达式**c的值是( )。
A. 变量a的地址
B. 变量b中的值
C. 变量a中的值
D. 变量b的地址
-
[填空题]用下面语句调用库函数malloc,使单精度型指针p指向具有40个字节的动态存储空间,请填空。
p=(float*) 【9】 ;
-
[单项选择]有以下程序:
main( )
char str[][10]="China","Beijing"),*p=str;
printf("%s/n",p+10);
程序运行后的输出结果是( )。
A. China
B. Beijng
C. ng
D. ing
-
[单项选择]有以下程序:
main( )
char s[]="ABCD", *p;
for( p=s+1;p<s+4;p++) printf("%s/n",p);
程序运行后的输出结果是( )。
A. ABCD
B. A
C. B
D. BCD
-
[单项选择]下列关于C语言用户标识符的叙述中正确的是( )。
A. 用户标识符中可以出现下划线和中划线(减号)
B. 用户标识符中不可以出现中划线,但可以出现下划线
C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
-
[单项选择]下列叙述中错误的是( )。
A. 测试是程序执行的过程,目的在于发现错误
B. 一个好的测试在于能发现至今未发现的错误
C. 一个成功的测试是发现了至今未发现的错误
D. 上述说法都不对
-
[填空题]以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abcl23edf456gh,执行程序后输出:123456。请填空。
#include <stdioo.h>
#include <ctype.h>
main( )
char s[80],d[80]; int i,j;
gets(s);
for(i=j=0;s[i]!=’/0’;i++)
if( 【20】 )d[j]=s[i];j++;
d[j]=’/0’;
puts(d);
-
[单项选择]有以下程序:
main( )
char a,b,c,*d;
a='/';b='/xbc';
c='/0xab';d="/017";
printf("%c%c%c/n",a,b,c,*d);
编译时出现错误,以下叙述中正确的是( )。
-
[单项选择]有以下程序:
main( )
int m=3,n=4,x;
x;-m++;
x=x+8/++n;
printf("%d/n",x);
程序运行后的输出结果是( )。
A. 3
B. 5
C. -1
D. -2
-
[填空题]以下程序运行后的输出结果是 【14】 。
main( )
int i,j,a[] [3]=1,2,3,4,5,6,7,8,9);
for(i=0;i<3;i++)
for(j=i+1;j<3;j++) a[j] [i]=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("/n");
-
[单项选择]已定义以下函数:
fun(char *p2,char *p1)
while ((*p2=*p1)!='/0')p1++;p2++;
函数的功能是( )。
-
[单项选择]有以下程序:
main( )
int x[8]=8,7,6,5,0,0,*s;
s=x+3;
printf("%d/n",s[2]);
执行后输出结果是( )。
A. 随机值
B. 0
C. 5
D. 6
-
[填空题]下面程序段的输出结果是 【8】 。
int x=5;
doprintf("%d ",x-=4);
while (!(--x));
-
[单项选择]有以下程序:
#include <stdlib.h>
struct NODE
int num; struct NODE *next; ;
main( )
struct NODE *p,*q,*r;
p=(struct NODE*)malloc(sizeof(struct NODE));
q=(struct NODE*)mallloc(sizeof(struct NODE));
r=(struct NODE*)malloc(sizeof(struct NODE));
p->num=10;q->num=20; r->num=30;
p->next=q;q->next=r;
printf("%d/n",p->num+q->next->num);
程序运行后的输出结果是( )。
A. 10
B. 20
C. 30
D. 40
-
[单项选择]有以下程序:
#include<string.h>
main( )
char str[][20]="Hello","Beijing"),*p=str[0];
printf("%d/n",strlen(p+20));
程序运行后的输出结果是( )。
A. 0
B. 5
C. 7
D. 20
-
[单项选择]有以下程序:
int f(int
-
[单项选择]设有如下程序:
#include’string.h"
main( )
static char s1[20],s2[20];
scanf("%s",s1);scanf("%s",s2);
if(strcmp(s1,s2)) printf("@");
else printf("$");
printf("%d/n",strlen(strcat(s1,s2)));
如果从键盘上输入name1<回车>name2<回车>,则程序运行后的输出结果是( )。
A. $9
B. @11
C. $10
D. @10
-
[单项选择]结构化程序设计的主要特点是( )。
A. 每个控制结构要模块化
B. 每个控制结构具有封装性
C. 每个控制结构具有独立性
D. 每个控制结构只有一个入口和一个出口
-
[单项选择]有以下程序段:
int m=0,n=0;
char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d/n",m,c,n);
若从键盘上输入10A10<回车>,则输出结果是( )。
A. 10,A,10
B. 10,a,10
C. 10,a,0
D. 10,A,0
-
[填空题]以下程序运行后的输出结果是 【13】 。
main( )
int i,n[]=0,0,0,0,0;
for(i=1;i<=4;i++)
n[i]=n[i-1]*2+1;
printf("%d ",n[i]);
-
[单项选择]下列数据结构中,不是线性结构的是( )。
A. 线性链表
B. 带链的队列
C. 带链的栈
D. 二叉链表
-
[单项选择]有如下程序:
#include <stdio.h>
main( )
FILE *fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1, "abc");
fclose(fp1);
若文本文件f1.txt中原有内容为good,则运行以上程序后文件f1.txt中的内容为( )。
A. goodabc
B. abcd
C. abc
D. abcgood
-
[单项选择]模块化程序设计主要强调的是( )。
A. 程序的规模要大
B. 对程序进行分解
C. 程序的执行效率
D. 程序的可移植性
-
[单项选择]有以下程序:
main( )
char k; int i;
for(i=1;i<3;i++)
scanf("%c",&k);
switch(k)
case ’0’: printf("another/n");
case ’1’: printf("number/n");
程序运行时,从键盘输入01<回车>,程序执行后的输出结果是( )。
A. another
B. another
C. another
D. number
-
[填空题]下面程序执行后k的值为 【6】 。
int a=1,b=2,c=3,d=4,k;
k=a>b a: c>d c: d
-
[单项选择]有以下程序:
main( )
int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f %3.1f/n",a,c,f,x);
程序运行后的输出结果是( )。
A. 1 65 1 6.5
B. 1 65 1.5 6.5
C. 1 65 1.0 6.5
D. 2 65 1.5 6.5
-
[单项选择]以下能正确定义二维数组的是( )。
A. int a[][3];
B. int a[][3]=2*3;
C. int a[][3]=;
D. int a[2][3]=1,2,3,4;
-
[填空题]请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
【16】 (double,double);
main( )
double x,y;
scanf("%1f%1f",&x,&y);
printf("%1f/n",max(x,y));
double max(double a,double b)
return(a>b a:b);
-
[填空题]在对文件进行操作的过程中,若要求指针的位置回到文件的开头,应当调用的函数是 【10】 。
-
[填空题]数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 【4】 。
-
[填空题]以下程序运行后的输出结果是 【15】 。
int a=5;
fun (int b)
static int a=10;
a+=b++;
printf("%d ",a);
main( )
int c=20;
fun(c);
a+=c++;
Printf("%d/n",a);
-
[单项选择]下列数据模型中,具有坚实理论基础的是( )。
A. 关系模型
B. 网状模型
C. 层次模型
D. 以上三个都是
-
[单项选择]以下选项中能正确把c1定义成结构体变量的是( )。
A. typedef struct
B. struct color c1
C. stmctcolor
D. struct
-
[填空题]以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
int fun(int n)
int m=0,f=1,i;
for(i=1;i<=n;i++)
m+=i*f;
f= 【11】 ;
return m;
main( )
printf("m=%d/n", 【12】 );
-
[单项选择]有以下程序:
int *f(int *x, int *y)
if (*x<*y)
return x;
else
return y;
main( )
int a=7,b=8,*p,*q,*r;
p=&a; q=&b;
r=f(p,q);
printf ("%d,%d,%d/n",*p,*q,*r);
执行后输出结果是( )。
A. 7,8,8
B. 7,8,7
C. 8,7,7
D. 8,7,8