二级C语言程序设计-7
(总分100,考试时间90分钟)
一、选择题
1. 构成C程序的三种基本结构是A.顺序结构、转移结构、递归结构 B.顺序结构、嵌套结构、递归结构 C.顺序结构、选择结构、循环结构 D.选择结构、循环结构、嵌套结构
2. C语言编译程序的功能是A.执行一个C语言编写的源程序 B.把C源程序翻译成ASCII码 C.把C源程序翻译成机器代码 D.把C源程序与系统提供的库函数组合成一个二进制执行文件
3. 下列形式中不合法的常量是A.2.E8 B.-.28 C.-028 D.2e-8
4. 以下不是C语言字符型或字符串常量的是A."It's" B."0" C.'a=0' D.'\010'
5. C语言程序中,若函数无返回值,则应该对函数说明的类型是A.int B.double C.char D.void
6. 若变量已正确定义并赋值,则错误的赋值语句是A.a+=a+1; B.a=sizeof(double); C.a=d‖c; D.a+1=a;
7. 若有定义:int a=1,b=2,c=3;,则执行表达式(a=b+c)‖(++b)后a,b,c的值依次为A.1,2,3 B.5,3,2 C.5,2,3 D.5,3,3
8. 有以下程序
#include <stdio.h>
main()
{ int k=10;
printf("%4d, %o, %x\n", k, k, k);
}
程序的运行结果是(□代表一个空格)A.10,12,a B.□□10,012,a C.010,12,a D.□□10,12,a
9. 设有:char s[5], c;,则调用函数scanf能正确给s和c读入数据的是A.scanf("%s%c", s, c); B.scanf("%d%c", &s, &c); C.scanf("%d%c", s, &c); D.scanf("%s%c", s, &c);
10. 设x,y,z均为实型变量,代数式在C语言中的正确写法是A.x/y*z B.x%y%z C.x/y/z D.x*z/y
11. 有以下程序
#include<stdio.h>
main()
{ int i, j, k, a=5, b=6;
i=(a==b)?++a: --b;
j=a++; k=b; printf("%d, %d, %d\n", i, j, k);
}
程序的运行结果是A.7,6,5 B.5,5,5 C.7,5,5 D.5,6,5
12. 设变量x为long int型并已正确赋值,以下表达式中能将x的百位上的数字提取出的是A.x/10%100 B.x%10/100 C.x%100/10 D.x/100%10
13. 有以下程序
#include<stdio.h>
main()
{ int i, j, x=0;
for(i=0; i<2; i++)
{ x++;
for(j=0; j<=3; j++)
c语言正确的字符常量 {if(j%2==0) continue; x++; }
x++;
}
printf("x=%d\n", x);
}
程序的运行结果是A.x=4 B.x=6 C.x=8 D.x=12
14. 有以下程序
#include<stdio.h>
main()
{ int sum=0, x=5;
do{sum+=x; }while(!--x);
printf("%d\n", sum);
程序的运行结果是A.0 B.5 C.14 D.15
15. 有以下程序
#include<stdio.h>
main()
{ char ch='Z';
ch=(ch-'A'+1)%26+'A'; putchar(ch);
程序的运行结果是A.Z B.Y C.B D.A
16. 以下函数的功能是:计算a的n次方作为函数值返回
double fun(double a, int n)
{ int i; double s=1.0;
for(i=1; i<=n; i++) s=______;
return 8;
}
为实现上述功能,函数中下划线处应填入的是A.s*i B.s*a C.s+i*i D.s+a*a
17. 在C语言程序中,下列说法正确的是A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和调用均不可以嵌套 D.函数的定义和调用均可以嵌套
18. 若主函数中有定义语句:int a[10],b[10],c;,在主函数前定义的fun函数首部为:void fun(int x[]),则以下选项中错误的调用语句是A.fun(b); B.fun(&c); C.fun(&a[3]); D.fun(b[1]);
19. 有以下程序
#include<stdio.h>
main()
{int k, n=0; char c, str[]="teach";
for(k=0; str[k]; k++)
{ c=str[k];
switch(k)
{case 1: case 3: case 5: putchar(c); printf("%d", ++n); break;
default: putchar('N');
}
}
}
程序的运行结果是A.Ne1NN B.e1a2e3 C.Ne1Nc2N D.Na1NNNN
20. 以下叙述中错误的是A.同一个数组中所有元素的类型相同 B.不可以跳过前面的数组元素,给后面的元素赋初值 C.定义语句:int a[10]={0};,给a数组中所有元素赋初值0 D.若
有定义语句:int a[4]={1, 2, 3, 4, 5};,编译时将忽略多余的初值
21. 执行以下程序段后,s的值为
int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9}, s=0, k;
for(k=0; k<8; k+=2) s+=*(a+k);A.13 B.16 C.17 D.45
22. 有以下程序
#include<stdio.h>
#define N 4
void fun(int a[][N], int b[])
{ int i;
for(i=0; i<N; i++) b[i]=a[i][N-1-i];
}
main()
{ int x[N][N]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}, y[N], i;
fan(x, y);
for(i=0; i<N; i++) printf(:%d,", y[i]);
printf("\n");
}
程序的运行结果是A.1,2,3,4, B.3,6,9,12, C.4,7,10,13, D.1,5,9,13,
23. 有以下程序
#include <stdio.h>
#include<string.h>
main()
{char str[]={"Hello, Beijing"};
printf("%d, %d\n", strlen(str), sizeof(str));
}
程序的运行结果是A.13,13 B.13,14 C.13,15D.14,15
24. 有以下程序
#include<stdio.h>
void fun(char(*p)[6])
{ int i;
for(i=0; i<4; i++) prinff("%c", p[i][i]);
printf("\n");
}
main()
{ char s[6][6]={"ABCDE", "abcde", "12345", "FGHIJ", "fghij", "54321"};
fun(s);
}
程序的运行结果是A.A a 1 F B.A b 3 I C.A B C D D.f g h i j
25. 有以下程序
#include<stdio.h>
int fun(int n)
{ if(n) return fun(n-1)+n;
else return 0;
}
main()
{printf("%d\n", fun(3)); }
程序的运行结果是A.4 B.5 C.6 D.7
26. 有以下程序
#include<stdio.h>
#define M 5
#define f(x, y) x*y+M
main()
{ int k;
k=f(2, 3)*f(2, 3);
printf("%d\n", k);
}
程序的运行结果是A.22 B.41 C.100 D.121
27. 有以下定义
struet data
{ int i; char c; double d; } x;
以下叙述中错误的是A.x的内存地址与x.i的内存地址相同 B.struct data是一个类型名 C.初始化时,可以对x的所有成员同时赋初值 D.成员i、c和d占用的是同一个存储空间
28. 有以下程序
#include <stdio.h>
#include<string.h>
typedef struet{ char name[9]; char sex; float score[2]; }STU;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论