试卷详情
-
二级C语言笔试-366
-
[单项选择]现有如下定义语句
int*p,s[20],i;
p=s;
表示数组元素s[i]的表达式不正确的是
A. *(s+i)
B. *(p+i)
C. *(s=s+i)
D. *(p=p+i)
-
[单项选择]A) *s B) S C) *s++ D) (*s)++
-
[单项选择]有以下程序:
#include <stdio.h>
main( )
FILE *fp;
int i,k,n;
fp=fopen("data.dar","w+");
for(i=1;i<6;i++)
fprintf(fp,"%d ",i);
if(i%3==0)
fprintf(fp,"/n");
rewind(fp);
fscanf(fp,"%d%d",&k,&n); printf("%d%d/n",k,n);
fclose(fp);
程序运行后的输出结果是( )。
A. 0 0
B. 123 45
C. 1 4
D. 1 2
-
[单项选择]若有定义int*p[3];,则以下叙述中正确的是______。
A. 定义了一个基类型为int的指针变量p,该变量有三个指针
B. 定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C. 定义了一个名为*p的整型数组,该数组含有三个int类型元素
D. 定义了一个可指向二维数组的指针变量p,所指一维数组应具有三个int类型元素
-
[填空题]有以下程序
main( )
int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf(“%d/n”,x);
执行后输出结果是______。
-
[单项选择]有以下程序
main( )
char ch[]="uvwxyz",*pc;
pc=ch;printf("%c/n",*(pc+5));
程序运行后的输出结果是
A. z B) 0 C) 元素ch[5]的地址 D) 字符y的地址
-
[填空题]以下程序运行后的输出结果是______。
#include
char *ss(char *s)
char *p, t;
p=s+1; t=*s;
while(*p) *(p-1) = *p; p++;
*(p-1)=t;
return s;main( )
char *p, str[10]="abcdefgh";
p = ss(str);
printf("%s/n",p);
-
[填空题]以下程序运行后的输出结果是______。
struct NODE
int k;
struct NODE *link;
;
main( )
struct NODE m[5],*p=m,*q=m+4;
int i=0;
while(p!=q)
p->k=++i; p++;
q->k=i++; q--;
q->k=i;
for(i=0;i<5;i++) printf("%d",m[i].k);
printf("/n");
-
[单项选择]下面是对宏定义的描述,不正确的是______。
A) 宏不存在类型问题,宏名无类型,它的参数也无类型
B) 宏替换不占用运行时间
C) 宏替换时先求出实参表达式的值,然后代入形参运算求值
D) 宏替换只不过是字符替代而已
-
[单项选择]下列选项中非法的字符常量是( )。
-
[单项选择]若有定义语句:int x=10;则表达式x-=x+x的值为
A. -20
B. -10
C. 0
D. 10
-
[单项选择]阅读下列程序,则执行后的结果为
#include"stdio.h"
main( )
int c[][4]=1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56;
printf("%x,%x/n",c[2][2],*(*(c+1)+1));
A. 3e,6
B. 62,5
C. 56,5
D. 3E,6
-
[填空题]下面程序的输出是______。
main( )
int arr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d/n"k);
-
[单项选择]与“for(i=0;i<10;i++)putchar('a'+i);”功能不同的语句是______。
-
[单项选择]开发软件时对提高开发人员工作效率至关重要的是
A. 操作系统的资源管理功能
B. 先进的软件开发工具和环境
C. 程序人员的数量
D. 计算机的并行处理能力
-
[单项选择]若输入12345、abc,程序的输出结果为______。
main( )
int a;
char ch;
scanf("%3d,%3c",&a,&ch);
printf("%d,%c",a,ch);
A. 123,abc
B. 123,4
C. 123,a
D. 12345,abc
-
[填空题]下面程序的功能:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。
# include<stdio. h>
# include<string. h>
main( )
char a[]="clanquage", t;
int i, j, k;
k=strlen(A) ;
for(i=0; i<=k-2; i+=2)
for(j=i+2;j<k; j+=2)
if(______)
t=a[i]; a[i]=a[j]; a[j]=t;
puts(A) ;
printf("/n");
-
[填空题]以下程序的功能是调用函数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=______;
return m;
main( ) printf("m=%d/n",______);
-
[单项选择]下列程序的输出结果是______。
main( )
int x=0,a=0,b=2;
if(x=a+b) printf("****/n");
else printf("####/n");
A. 有语法错,不能通过编译
B. 通过编译,但不能连接
C. ****
D. ####
-
[单项选择]若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后x的值为( )。
A. 4
B. 16
C. 32
D. 52
-
[单项选择]下列说法不正确的是( )。
A. C语言程序是以函数为基本单位的,整个程序由函数组成
B. C语言程序的一条语句可以写在不同的行上
C. C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写
D. C语言程序的每个语句都以分号结束
-
[单项选择]以下程序运行后的输出结果是
#include<stdio.h>
main( )
int c=0, k;
for(k=1; k<3; k++)
switch(k)
default: c+=k;
case 2: c++; break; case 4: c+=2; break;
printf("%d/n", c);
A. 3
B. 5
C. 7
D. 9
-
[单项选择]有以下程序:
main( )
int c=35; printf("%d/n", c&c);
程序运行后的输出结果是( )。
A. 0
B. 70
C. 35
D. 1
-
[单项选择]有以下程序
struct s
int x,y; data[2]=10,100,20,200;
main( )
struct s *p=data;
printf("%d/n",++(p->x));
程序运行后的输出结果是
A)10
B)11
C)20
D)21
-
[填空题]在面向对象方法中,属性与操作相似的一组对象称为______。
-
[填空题]软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和______的设计来实现。
-
[单项选择]下面程序的输出结果是______。
#inc1ude<stdio.h>
main( )
char*p[]="BOOL","OPK","H","SP";
int i;
for(i=3;i>=0;i-,i-)
prinf("%c",*p[i]);
print("/n")
A) SO B) SP C) SPOPK D) SHOB
-
[单项选择]若有运算符:> 、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列次序为( )。
A) *=<< > % sizeof B) << *= > % sizeof
C) %= > << sizeof % D) *= > << % sizeof
-
[单项选择]C语言库函数fgets(str,n,fp)的功能是 ______。
A. 从fp指向的文件中读取长度n的字符串存入str旨向的内存
B. 从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存
C. 从fb指向的文件中读取n个字符串存入str指向的内存
D. 从str读取至多n个字符到文fp
-
[单项选择]将E-R图转换到关系模式时,实体与联系都可以表示成( )。
A. 属性
B. 关系
C. 键
D. 域
-
[单项选择]请读程序:
#include<stdio.h>
main( )
int a;float b,c;
scanf("%2d%3f%4f",&a,&b,&c) ;
printf("/na=%d,b=%f,c=%f/n",a,b,c) ;
若运行时从键盘上输入9876543210,↓,则上面程序的输出络果是_______。
A) a=98,b=765,c=4321
B) a=10,b=432,c=8765
C) a=98,b=765.000000,c=4321.000000
D) a=98,b=765.0, c=4321.0
-
[填空题]在C语言中(以16位PC机为例),一个int型数据在内存中所占的字节数为______;一个float型数据在内存中所占的字节数为______。
-
[单项选择]有以下程序
#include <stdio.h>
main( )
FILE *fp; int a[10]=1,2,3,i,n;
fp=fopen("d1.daf","w");
for(i=0;i<3;i++) fprintf(fp,"%d",a[i]);
fprintf(fp,"/n");
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d",&n);
fclose(fp);
printf("%d/n",n);
程序的运行结果是
A. 12300
B. 123
C. 1
D. 321
-
[单项选择]若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是( )。
A. a[2][1]
B. a[2][3]
C. a[0][3]
D. a[1>2][!1]
-
[单项选择]下列叙述中错误的是______。
A. 一个C语言程序只能实现一种算法 B) C程序可以由多个程序文件组成
B. C程序可以由一个或多个函数组成
C. 一个C函数可以单独作为一个C程序文件存在
-
[单项选择]为了避免嵌套的if-else的二义性,C语言规定:else与______配对。
A) 缩排位置相同的if B) 其之前最近的if
C) 其之后最近的if D) 同一行上的if
-
[单项选择]有以下程序
main( )
char a,b,c,*d;
a='/';b='/xbc';
c='/0xab';d="/0127";
pfintf("%c%c%c%c/n",a,b,c,*d) ;
编译时出现错误,以下叙述中正确的是
-
[单项选择]若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元,则应填入 ( ) int * p p=_______malloc(sizeof(int));A) int
B) int
C) (* int)
D) (into*)
-
[填空题]按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
-
[填空题]以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。
请填空。
void sstrcpy(char*s,char*t)
while(*s++=______);
main( )
char strl[100],str2[]="abcdefgh";
sstrcpy(strl,str2);
printf("%s/n",strl);
-
[单项选择]下列程序执行后的输出结果是
main( )
int a[3][3], *p,i;
p=&a[0][0];
for(i=1;i<9;i++)p[i]=i+1;
printf("%d/n",a[1][2]);
A. 3
B. 6
C. 9
D. 随机数
-
[填空题]算法执行过程中,所需要的基本运算次数称为算法的______。
-
[单项选择]若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确的语句是( )。
A. p=2*(int*)malloc (sixeof(int))
B. p=(int*)calloc (2*sixeof(int))
C. p=(int*)malloc (2*sizeof(int))
D. p=2*(int*)calloc (sizeof(int))
-
[填空题]以下程序从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include
main( )
FILE*fp;char ch;
fp=fopen(______);
ch=fgetc(fp);
while(!feof(fp))pufchar(ch);ch=fgetc(fp);
putchar(‘/n’);fcloseffp);
-
[单项选择]有下列程序:
main( )
char s[]="abcde";
s+=2;
printf("%d/n", s[0];
执行后的结果是( )。
A. 输出字符a的ASCII码
B. 输出字符c的ASCII码
C. 输出字符c
D. 程序出错
-
[填空题]以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整型数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
struct node
int info;
______link; ;
-
[单项选择]下面能正确进行字符串赋值操作的是( )。
-
[填空题]顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
-
[单项选择]若有语句int * point,a=4;和point=&a;下面均代表地址的一组选项是( )。
A. a,point,*&a
B. &*a,&a,*point
C. *&point,*point,&a
D. &a,& * point,point
-
[填空题]在对文件进行操作的过程中,若要使文件位置的指针回到文件的开头,应使用的函数是______。
-
[单项选择]在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。
A. 概要设计
B. 详细设计
C. 可行性分析
D. 需求分析
-
[单项选择]若有以下程序:
#include<stdio.h>
int a[]=2,4,6,8;
main( )
int i;
int *p=a;
for(i=0;i<4;i++) a[i]=*p;
printf("%d/n",a[2]);
上面程序的输出结果是( )。
A. 6
B. 8
C. 4
D. 2
-
[单项选择]设有int x=11:表达式(x++*1/3)的值是( )。
A. 3
B. 4
C. 11
D. 12
-
[单项选择]定义如下变量和数组:
int i;
int x[3][3]=1,2,3,4,5,6,7,8,9;
则下面语句的输出结果是
for(i=0;i<3;i++)
printf("%d",x[2-1][1]);
A. 9 5 1
B. 7 4 1
C. 7 5 3
D. 9 6 3
-
[单项选择]先用以下语句定义字符型变量:
char c;
然后要将字符a赋给变量c,则下列语句中正确的是______。
-
[填空题]设有下列宏定义:
#define A 2
#define B (A+3)
则执行赋值语句“k=B*20;”(k为int型变量)后,k的值是______。
-
[单项选择]下面程序的输出是( )。
main( )
int t=1;fun(fun(t));
fun(int h)
static int a[3]=1,2,3;
int k;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=0;k<3;k++)printf("%d",a[k]);
printf("/n");
return(a[h]);
A. 1,2,3,
B. 1,3,5,
C. 1,3,5,
D. 1,3,5,
-
[填空题]设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充家整。
seanf("%d",______);
printf("%d/n",______);
-
[单项选择]在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比铰次数为 ______。
A. 2
B. 3
C. 4
D. 5
-
[单项选择]当a=1、b=2、c=3、d=4时,执行下面程序段后,x的值是( )。
if(a<b)
if(c<d)x=1;
else
if(a<c)
if(b<d)x=2:
else x=3:
else x=6:
else x=7:
A. 1 B) 6 C) 3 D) 2
-
[单项选择]有以下程序
main( )
int a=0,i;
for(i=1;i<5; i++)
switch (i)
case 0
case 3:a+ =2;
case 1;
case 2;a+=3;
default, a+=5;
printf("%d/n",a) ;
A. 31
B. 13
C. 10 D) 20
-
[单项选择]有以下程序:
struct Sint n;int a[20];;
void f(int *a, int n)
int i;
for(i=0;i<n-1;i++)a[i]+=i;
main( )
int i;struct S s=10,12,3,1,6,8,7,5,4 ,10,9;
f(s.a,s.n);
for(i=0;i<s.n;i++)printf("%d,",s.a[i]);
程序运行后的输出结果是
A. 2,4,3,9,12,12,11,11,18,9,
B. 3,4,2,7,9,8,6,5,11,10,
C. 2,3,1,6,8,7,5,4,10,9,
D. 1,2,3,6,8,7,5,4,10,9,
-
[单项选择]设有以下定义和语句:
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]
-
[填空题]设有定义语句:int a[][3]=0,12;,则数组元素a[1][2]的值是______。
-
[单项选择]以下选项中非法的表达式是( )。
A. 0<=x<100
B. i=j= =0
C. (char)(65+3) D) x+1=x+1
-
[单项选择]采用链接方式存储线性表的优点是______。
A. 便于随机存取
B. 花费的存储空间较顺序存储少
C. 便于插入和删除操作
D. 数据元素的物理顺序和逻辑顺序相同