二级C语言-17
(总分71.5,考试时间90分钟)
一、选择题
1. 有以下程序:
main()
{
char s[]="Yes\n/No",*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
}
程序运行后的输出结果是(选项D中的第一行是空行) ( )。A. n/No Yes /No B. /No Yes C. /No Yes /No D. /No Yes
2. 以下叙述中正确的是______。A. 用C语言实现的算法必须要有输入和输出操作 B. 用C语言实现的算法可以没有输出,但必须要有输入 C. 用C程序实现的算法可以没有输入,但必须要有输出 D. 用C程序实现的算法可以既没有输入,也没有输出
3. 以下叙述中错误的是A. C语言是一种结构化程序设计语言 B. 结构化程序由顺序、分支、循环三种基本结构组成 C. 使用三种基本结构构成的程序只能解决简单问题 D. 结构化程序设计提倡模块化的设计方法
4. 下列选项可以正确表示字符型常量的是A. '\r' B. "a" C. "\897" D. 296
5. 以下程序运行后的输出结果是______。
int d=1:
fun(int p)
{static int d=5;d+=p;
printf("%d",d);return d;
}
main()
{int a=3;printf("%d\n",fun(a+fun(d)));}A. 699 B. 669 C. 61515 D. 6615
6. 有以下程序
#include<stdio.h>
main()
{ int a=2,b=2,c=2;
printf("%d\n",a/b&c);
}
程序运行后的输出结果是A. 0 B. 1 C. 2 D. 3
7. 下列程序段的运行结果是( )。
#include<stdio.h>
void main()
{ char str[]="ABC",*p=str;
printf("%d\n",* (p+3));
}A. 67 B. 0 C. 字符'C'的地址 D. 字符'C'
8. 若有定义int x, y;,并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是______。A. (x-y>0) B. (x-y<0) C. (x-y<0||x-y>0) D. (x-y==0)字符串长度0到59
9. #define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为 。A. #definef(x)5*x*x+5*x+5 B. #definef5*x*x+5*x+5 C. #definef(a)(5*a*a+5*a+5) D. #define(5*x*x+5*x+5)f(x)
10. 下列判断正确的是 。A. chara="ABCD";等价于char*a;*a="ABCD"; B. char str[10]={"ABCD"};等价于char str[10];str[]={"ABCD"}; C. char*s="ABCD";等价于char s;*s="ABCD"; D. charc[5]="ABCD",d[5]="ABCD";等价于char c[5]=d[5]="ABCD";
11. 当用户要求输入的字符串中含有空格时,应使用的输入函数是 。A. scanf() B. getchar() C. gets() D. getc()
12. 以下各选项企图说明一种新的类型名,其中正确的是 ______。A. typedef vl int; B. typedef v2=intC. typedef int v3; D. typedef v4:int
13. C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是______。A. 由实参传给形参,再由形参传回给实参 B. 地址传递 C. 单向值传递 D. 由用户指定传递方式
14. 有以下程序:
main()
{int a[]={2,4,6,8,10),y=0,x,*P;
P=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n",y);
}
程序运行后的输出结果是______。A. 10 B. 11 C. 14 D. 15
15. 将E-R图转换到关系模式时,实体与实体间的联系可以表示成 A. 属性 B. 关系 C. 键 D. 域
16. 已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出比中的值为大写字母的表达式是A. kk>='A'&&kk<='Z' B. !(kk>='A'||kk<='Z') C. (kk+32)>='a'&&(kk+32)<='z' D. isalpha(kk)&&(kk<91)
17. 下列叙述中正确的是 。A.一个算法的空间复杂度大,则其时间复杂度必定大 B.一个算法的空间复杂度大,则其时间复杂度必定小 C.一个算法的时间复杂度大,则其空间复杂度
必定小 D.上述三种说法都不对
18. 以下程序中的变量已正确定义,程序段的输出结果是
for(i=0; i<4; i++, i++)
for(k=1; k<3; k++); printf("*");A. ******** B. **** C. ** D. *
19. 有以下程序段:
char ch; int k;
ch='a'; k=12;
printf("%c, %d, ", ch, ch); printf("k=%d\n", k);
已知字符a的ASCII码值为97,则执行上述程序段后输出结果是( )。A. 因变量类型与格式描述符的类型不匹配,输出无定值 B. 输出项与格式描述符个数不符,输出为零值或不定值 C. a, 97, 12k=12 D. a, 97, k=12
20. 有以下程序:
main()
{int e[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n",y);
}
程序运行后的输出结果是______。A. 10 B. 11 C. 14 D. 15
21. 有以下程序
main()
{ int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0; i<3 ; i++)
for(j=2; j>=i ; j--)
if(x[j+1]>x[j]) {k=x[j]; x[j]=x[j+1]; x[j+1]=k; }
for(i=0; i<3; i++)
for(j=4; j<7-i; j++)
if(x[j]>x[j+1])
{k=x[j]; x[j]=x[j+1]; x[j+1]=k; }
for(i=0; i<8; i++)
printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是______。A. 75310246 B. 01234567 C. 76310462D. 13570246
22. 一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是 。A.12345ABCDE B.EDCBA54321 C.ABCDE12345 D.54321EDCBA
23. 有以下程序
typedef struct{int b,p;}A;
void f(A c) /*注意:c是结构变量名 */
{ int j;
**+=1; c.p+=2;
}
main()
{ int i;
A a={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);
}
程序运行后的输出结果是______。A. 2,3B. 2,4C. 1,4D. 1,2
24. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是______。A. 只读 B. 追加 C. 读或读写 D. 以上均正确
25. 有下列二叉树,对此二叉树前序遍历的结果为 。
A. XZCYAB B. XYZABC C. XYABCZ D. XYAZBC
26. 结构化分析方法是面向 的自顶向下逐步求精进行需求分析的方法。A. 对象 B. 数据结构 C. 数据流 D. 目标
27. 下列关于C语言数据文件的叙述中正确的是A. 文件由ASCII码字符序列组成,C语言只能读写文本文件 B. 文件由二进制数据序列组成,C语言只能读写二进制文件 C. 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
28. 以下叙述中正确的是 。A. 调用pfintf函数时,必须要有输出项 B. 使用putchar函数时,必须在之前包含头文件stdio.h C. 在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D. 调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论