2017年全国c语言二级考试题库试卷(1)
-
下列程序的输出结果是( )。 #include<stdio.h> main() { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=1; case 1: case 2:a+=2; default:a+=3; } printf("%d",A) ; }
- A.19
- B.18
- C.6
- D.8
-
为了使模块尽可能独立,要求
- A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
- B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
- C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
- D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
-
有以下程序 float fun(int x,int y) {return(x+y);} main() { int a=2,b=5,c=8; printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是
- A.编译出错
- B.9
- C.21
- D.9
-
在数据库系统中,用户所见数据模式为______。
- A.概念模式
- B.外模式
- C.内横式
- D.物理模式
-
定义int*swap()指的是______。
- A.—个返回整型值的函数swap()
- B.一个返回指向整型值指针的函swap()
- C.一个指向函数swap()的指针,函数返回一个整型值
- D.以上说法均错
-
设x=011050,则x=x&01252的值是( )。
- A.0000001000101000
- B.1111110100011001
- C.0000001011100010
- D.1100000000101000
-
有以下程序段 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.1O,a,0
- D.10,A,0
-
下列说法中错误的是
- A.只能在循环体内使用break语句
- B.在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环
- C.在while和do…while循环中,continue语句并没有使整个循环终止
- D.continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断
-
以下程序的功能是( )。 # include <stdio.h> main() {FILE*fPl; *fp2; fp1:fopen("file1","r"); fp2:fopen("file2","w"); while(! Feof(fP1)) fputc(fgetc(fP1),fp2); fclose(fP1);fclose(fp2);}
- A.将磁盘文件的内容显示在屏幕上
- B.将两个磁盘文件合为一个
- C.将一个磁盘文件复制到另一个磁盘文件中
- D.将两个磁盘文件合并后送屏幕
-
有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
- A.a[p-a]
- B.*(&a[i])
- C.p[i]
- D.*(*(a+i))
-
有以下程序:#include<stdio.h>#include<stdio.h>main() { char c[6]; int i=0; for(;j<6;c[i]=getchar(),i++); for(i=0;i<6;i++)putchar(c[i]); printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为 ______。
- A.a b c d e f
- B.a b c d
- C.ab c d
- D.abcdef
-
fscanf函数的正确调用形式是
- A.fscanf(fp,格式字符串,输出表列);
- B.fscanf(格式字符串,输出表列,fp);
- C.fscanf(格式字符串,文件指针,输出表列);
- D.fscanf(文件指针,格式字符串,输入表列);
-
以下程序的输出结果是( )。
void prt(int*m.int n)
{int i;
for(i=0;i
main
{ int a[]={1,2,3,4,5),i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);)
- A.1,2,3,4,5
- B.2,3,4,5,6
- C.3,4,5,6,7
- D.2,3,4,5,1
-
下面软件中,属中应用软件的是 ( )
- A.Unix
- B.人事管理系统
- C.数据库管理理系统
- D.DOS
-
以下程序运行后,输出结果是( ) #include<stdio.h> ss(char *s) { char*p=s; while(*p) p++ return(p-s); } main() { char *a="abded" int i; i=ss(a) ; printf("%d\n",i); }
- A.8
- B.7
- C.6
- D.5
-
给出发下定义: char x[]="abcdefg"; char y[]={'a', 'b', 'c', 'd', 'e', 'f', 'g' };则正确的叙述为______。
- A.数组x和数组y等价
- B.数组x和数组y的长度相同
- C.数组x的长度大于数组y的长度
- D.数组x的长度小于数组y的长度
-
若在定义语句:int a,b,c*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )。
- A.scanf("%d",a,b,C);
- B.scanf("%d%d%d",a,b,C);
- C.scanf("%d",p);
- D.scanf("%d",&p);
-
以下程序的输出结果是______。 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]); }
- A.650
- B.1470
- C.5430
- D.输出值不定
-
已定义以下函数 fun(char *p2,char *p1) { while((*p2=*p1)!='0'){P1++;p2++;}} 函数的功能是
- A.将p1所指字符串复制到p2所指内存空间
- B.将P1所指字符串的地址赋给指针p2
- C.对p1和p2两个指针所指字符串进行比较
- D.检查P1和p2两个指针所指字符串中是否有'\0'
-
以下叙述中错误的是______。
- A.C程序中的#include和#define行均不是C语句
- B.除逗号运算符外,赋值运算符的优先级最低
- C.C程序中,j++;是赋值语句
- D.C程序中,+、-、*、/、%号是算术运算符,司用于整型和实型数的运算
-
下面程序的输出结果是
#include
main()
{ int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*p+9);}
- A.0
- B.1
- C.10
- D.9
-
有以下程序
#include
main
{ int a=1,b=2,c=3,x;
x=(a^b)&C;printf("%d",x);
}
程序的运行结果是( )。
- A.0
- B.1
- C.2
- D.3
-
以下有关宏替换的叙述不正确的是( )。
- A.双引号中出现的宏名不替换
- B.使用宏定义可以嵌套
- C.宏定义仪仪是符号替换
- D.宏名必须用大写字母表示
-
在16位IBM-PC机上使用C语言,若有如下定义
struct data
{ int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是
- A.1
- B.2
- C.7
- D.11
-
信息隐蔽的概念与下述哪一种概念直接相关?
- A.软件结构定义
- B.模块独立性
- C.模块类型的划分
- D.模块耦合度
-
下列程序的执行结果是______。 #include<stdio.h> union un { int i; char c[2}; }; void main() { union un x; x.c[0]=10; x.c[1]=1; printf("\n%d",x.i); }
- A.266
- B.11
- C.265
- D.138
-
有以下函数: fun(char *p) { return p;} 该函数的返回值是( )。
- A.无确切值
- B.形参p中存放的地址值
- C.一个临时存储单元的地址
- D.形参p自身的地址值
-
下面程序的输出结果是 main() { char str[10],c='a'; int i=0; for(;i<5;i++) str[i]=c++; printf("%s",str); }
- A.abcde
- B.a
- C.不确定
- D.bcdef
-
执行下列程序后的输出结果是______。main(){ int y=10; do {y--;}while(--y); printf("%d\n",y--);}
- A.-1
- B.1
- C.8
- D.0
-
下列对于软件测试的描述中正确的是( )。
- A.软件测试的目的是证明程序是否正确
- B.软件测试的目的是使程序运行结果正确
- C.软件测试的目的是尽可能多地发现程序中的错误
- D.软件测试的目的是使程序符合结构化原则
-
若有定义和语句 int * *pp, *p,a=10,b=20; pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp); 则输出结果是( )
- A.10,10
- B.10,20
- C.20,10
- D.20,20
-
下列描述中正确的是( )。
- A.程序就是软件
- B.软件开发不受计算机系统的限制
- C.软件既是逻辑实体,又是物理实体
- D.软件是程序、数据与相关文档的集合
-
软件生命周期是指( )。
- A.软件产品从提出、实现、使用维护到停止使用退役的过程
- B.软件从需求分析、设计、实现到测试完成的过程
- C.软件的开发过程
- D.软件的运行维护过程
-
fgetc函数的作用是从指定文件读入—个字符,该文件的打开方式必须是______。
- A.只读
- B.追加
- C.读或读写
- D.以上均正确
-
若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]={0},( *p)[3]; p=s;
- A.*(*(p+i)+j)
- B.*(p[i]+j)
- C.(p+i)+j
- D.(*(p+i))[j]
-
有以下程序 void sum (int a[]) { a[0]-a[-1]+a[1]; } main ( ) { int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf ("%d\n" ,a[2] ); } 程序运行后的输出结果是
- A.6
- B.7
- C.5
- D.8
-
下列叙述中错误的是( )。
- A.在数据库系统中,数据的物理结构必须与逻辑结构一致
- B.数据库技术的根本目标是要解决数据的共享问题
- C.数据库设计是指在已有数据库管理系统的基础上建立数据库
- D.数据库系统需要操作系统的支持
-
阅读下面程序段,则执行后的结果为 #include"stdio.h" main() { int m=4,n=2,k; k=fun(m,n); printf("%d\n",k);} fun(int m,int n) { return(m*m*m-n*n*n);}
- A.64
- B.8
- C.56
- D.0