中国青年政治学院往年C语言测试卷

本试卷为中国青年政治学院往年C语言测试卷,题目包括:单项选择题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

本卷包括如下题型:

一、单项选择题

C语言测试卷

一、单项选择题 (共50题,每题2分,共计100分)

(  B  )
1、已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是________。
A、isupper(c)
B、’A’<=c<=’Z’
C、’A’<=c&&c<=’Z’
D、c<=(‘2’-32)&&(‘a’-32)<=c
(  A  )
2、设x=011050,则x=x801252的值是________。
A、0000001000101000
B、11111101000l1001
C、0000001011100010
D、1100000000101000
(  C  )
3、avg功能是求整形数组中的前若干个元素的平均值,设数组元素个数最多不超过则下列函数说明语句错误的是________。
A、int avg(int*a,int n);
B、int avg(int a[lO],int n);
C、int avg(int a,int n);
D、int avg(int a[],int n);
(  D  )
4、以下叙述中不正确的是________。
A、在不同的函数中可以使用相同名字的变量
B、函数中的形式参数是局部变量
C、在一个函数内定义的变量只在本函数范围内有效
D、在一个函数内的复合语句中定义的变量在本函数范围内有效
(  D  )
5、若有定义:int a[10],则对数组a元素的正确引用是________。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
(  B  )
6、与十六进制数200等值得十进制数为________。
A、256
B、512
C、1024
D、2048
(  A  )
7、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是________。
A、p=2*(int*)malloc(sizeof(int));
B、p=(int*)malloc(2*sizeof(int));
C、p=(int*)malloc(2*2);
D、p=(int*)calloc(2,sizeof(int));
(  D  )
8、以下对一维数组a的正确说明是________。
A、char a(10);
B、int a[];
C、int k=5,a[k];
D、char a[3]={‘a’,’b’,’c’};
(  C  )
9、若有定义 double x=1 , y; 则以下的语句执行的结果是______。 y=x+3/2; printf( " %f " ,y);
A、2.500000
B、2.5
C、2.000000
D、2
(  C  )
10、设有说明 int (*ptr)[m]; 其中 ptr 是______。
A、M 个指向整型变量的指针
B、指向 M 个整型变量的函数指针
C、一个指向具有 M 个整型元素的一维数组的指针
D、具有 M 个指针元素的一维指针数组,每个元素都只能指向整型量
(  A  )
11、若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设 a[0] [0]位于数组的第一个位置上) ________。
A、i*m+j
B、j*m+I
C、i*m+j-1
D、i*m+j+1
(  A  )
12、下列内容是异常的含义的是________。
A、程序编译或运行中发生的异常事件
B、程序的语法错误
C、程序编译错误
D、程序预先定义好的异常事件
(  C  )
13、以下定义语句中正确的是________。
A、char a='A'b='B';
B、float a=b=l0.0;
C、int a=l0,*b=&a;
D、float *a,b=&a;
(  B  )
14、下列语句中,不正确的一个是______。
A、float e=1.1f;
B、char f=-1.1f;
C、double g=1.1f;
D、byte h=1;
(  A  )
15、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
A、1 0
B、0 1
C、非0非0
D、1 1
(  C  )
16、下面对c语言的描述中,正确的是________。
A、函数一定有返回值,否则无法使用函数
B、C语言函数既可以嵌套定义又可以递归调用
C、在C语言中,调用函数时,只能将实参的值传递给形参
D、C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
(  A  )
17、下列四个不同数制表示的数中,数值最大的是________。
A、二进制数11011101
B、八进制数334
C、十进制数219
D、十六进制数DA
(  B  )
18、若执行下述程序时,若从键盘输入6和8时,结果为
main() {
int a,b,s;
scanf("%d%d",&a,&b);
s=a if(a<b) s=b;
s*=s;
printf("%d",s);
}
A、36
B、64
C、48
D、以上都不对
(  B  )
19、有下列程序:
#include<stdio.h>
main()
{
int a=6,b=7,m=1;
switch(a%2)
{
case 0:m++;
break;
case 1:m++;
switch(b%2)
{
defaut:m++;
case0:m++;
break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是________。
A、1
B、2
C、3
D、4
(  A  )
20、若有以下程序
#include<stdio.h>
main() {
int a=6,b=0,c=0;
for(;a;) {
b+=a;
a-=++c;
}
printf("%d,%d,%d\n",a,b,c);
}
则程序的输出结果是______。
A、0,14,3
B、1,14,3
C、0,18,3
D、0,14,6
(  C  )
21、下面程序的运行结果是
#include<stdio.h>
main()
{
int a=28,b;
char s[10],*p;
p=s;
do
{
b=a%16;
if(b<10) *p=b+48;
else *p=b+55;
p++;
a=a/5;
}
while(a>0);
*p='\0';
puts(s);
}
A、10
B、C2
C、C51
D、\0
(  B  )
22、x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是________。
A、INPUT x、v、z;
B、scanf("%d%d%d",&x,&y,&z);
C、scanf("%d%d%d",x,y,z);
D、read("%d%d%d",&x,&y,&z);
(  D  )
23、有以下结构体说明、变量定义和赋值语句
struct std
{
char name[10];
int age;
char sex;
}
s[5],*ps;
ps=&s[0];
则以下scanf函数调用语句中错误引用结构体变量成员的是________。
A、scanf("%S",S[0].name);
B、scanf("%d",&s[0].age);
C、scanf("%C",&(ps->sex));
D、scanf("%d",ps->age);
(  D  )
24、若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*X/2
以下程序段的输出结果是______。
int a;
a=Y;
printf("%d\n",Z);
printf("%d\n",--a);
A、7 6
B、12 6
C、12 5
D、7 5
(  C  )
25、以下能将字符串,you are luck!正确读入的语句组是________。
A、char s[80]; scanf("%s",s);
B、char *s: scanf("%s",s);
C、char s[80]; gets(s);
D、char *s; gets(3);
(  D  )
26、有以下程序:
#include <stdio.h>
struct s
{
int a, b;
}
data[2]= {10, 100, 20, 200 };
main()
{
struct s p=data[1];
printf("%d\n", ++(p.a));
}
程序运行后的输出结果是______。
A、10
B、11
C、20
D、21
(  B  )
27、有以下程序
#include<stdio.h>
main()
{
char s[]="012xy\08s34f4w2";
int i, n=0;
for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n", n);
}
程序运行后的输出结果是______。
A、0
B、3
C、7
D、8
(  D  )
28、以下不正确的转义字符是________。
A、'\\'
B、'\d'
C、'\s'
D、'088'
(  A  )
29、若x、y、z、m均为int型变量,则执行下面语句后m的值是________。
m=1;
x=2;
y=3;
m=(m<x) ? m : x;
m=(m<y) ? m : y;
m=(m<y) ? m : z;
A、1
B、2
C、3
D、4
(  D  )
30、设有声明"int p[10]={1,2}
,i=0;
",以下语句中与"p[i]=p[i+1],i++;
"等价的是___________。
A、P[i]=P[i++];
B、P[++i]=P[i];
C、P[++i]=P[i+1];
D、i++,P[i-1]=P[i];
(  A  )
31、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
A、9,66,9
B、6,99,6
C、6,96,9
D、9,69,6
(  D  )
32、下面叙述正确的是________。
A、只要是简单算法,它的操作步骤都不会超过 20 步
B、任何算法需要包含三种基本结构中的两种以上
C、复杂算法是不能用三种基本结构来表达的
D、C 语言程序的语句经过编译和链接转换成二进制机器指令后才能执行
(  B  )
33、执行下面程序片段的结果是______。int x=23;
do
{
printf("%2d",x--);
}
while(!x);
A、打印出321
B、打印出23
C、不打印任何内容
D、陷入死循环
(  A  )
34、下面的程序
main()
{
int a=2;
do
{
printf("%d\n",a-=2);
}
while(!(--a) );
}
______。
A、输出的是0
B、输出的是0和-3
C、输出的是3和0
D、是死循环
(  D  )
35、假定int类型变量占用4个字节,若有定义:int x[10]= {0,2,4}则数组x在内存中所占字节数是______。
A、4
B、12
C、20
D、40
(  D  )
36、在c语言中以下正确的叙述是________。
A、函数的定义和函数的调用均可以嵌套
B、函数的定义和函数的调用均不可以嵌套
C、函数的定义可以嵌套,但函数的调用不可以嵌套。
D、函数的定义不可以嵌套,但函数的调用可以嵌套。
(  A  )
37、以下描述错误的是________。
A、实参数可以与形参个数不一致。
B、C程序中,函数可以直接或间接地调用自己。
C、函数调用时,函数名必须与所调用的函数名字完全一致
D、函数声明语句中的类型必须与函数返回值得类型一致。
(  C  )
38、设 float f[10]; 则f数组中下标最大的元素的正确表示为________。
A、f[10]
B、f[0]
C、f[9]
D、f(9)
(  C  )
39、下列数据中数值最大的是________。
A、(10000)2
B、(17)8
C、(17)10
D、(10)16
(  A  )
40、在c语言中,当内部函数与外部函数重名时,下列描述中正确的是________。
A、当调用时,会调用内部函数
B、当调用时,会调用外部函数
C、当调用时,会调用两次,先调用内部函数再调用外部函数
D、都不调用,会报错
(  C  )
41、设n为整型变量,则for(n = 10; n >= 0; n--)循环的次数为________。
A、9
B、10
C、11
D、12
(  B  )
42、若想通过a&b来使a的二进制码中的首尾两位为原来的值,而其余为0,则b应为:(设变量a,b均占一个字节)
A、01111110
B、10000001
C、视a值而定
D、无法办到
(  A  )
43、下列对字符串的定义中,错误的是________。
A、char str[7] = "FORTRAN";
B、char str[] = "FORTRAN";
C、char *str = "FORTRAN";
D、char str[] = {'F','O','R','T','R','A','N',0};
(  B  )
44、以下说法正确的是________。
A、C 语言只接受十进制的数
B、C 语言只接受八进制、十进制、十六进制的数
C、C 语言接受除二进制之外任何进制的数
D、C 语言接受任何进制的数
(  B  )
45、以下叙述中正确的是________。
A、使用 typedef 说明新类型名时,其格式是:typede 新类型名原类型名
B、在程序中,允许用 typedef 来说明一种新的类型名
C、使用 typedef 说明新类型名时,后面不能加分号
D、在使用 typedef 改变原类型的名称后,只能使用新的类型名
(  D  )
46、若有定义:int b[5];
则以下对b 数组元素的正确引用是________。
A、*b[5]
B、b+2
C、*(*(b+2))
D、*(b+2)
(  A  )
47、以下程序的运行结果是________。
void sub (int x,int y,int *z)
{
*z=y-x;
}
main()
{
int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%4d,%4d,%4d",a,b,c);
}
A、5, 2, 3
B、-5, -12, -7
C、-5, -12, -17
D、5, -2, -7
(  D  )
48、以下与库函数strcpy(char*p1,char*p2) 功能不等的程序段是________。
A、strcpy1(char *p1,char *p2){
while ((*p1++=*p2++)!='\0');
}
B、strcpy2(char *p1,char *p2){
while ((*p1=*p2)!='\0'){
p1++;p2++;
}
}
C、strcpy3(char *p1,char *p2){
while (*p1++=*p2++);
}
D、strcpy4(char *p1,char *p2){
while (*p2) *p1++=*p2++;
}
(  D  )
49、在说明一个结构体变量时系统分配给它的存储空间是________ 。
A、该结构体中第一个成员所需存储空间
B、该结构体中最后一个成员所需存储空间
C、该结构体中占用最大存储空间的成员所需存储空间
D、该结构体中所有成员所需存储空间的总和
(  B  )
50、下面语句中( )是c 语言的正确赋值语句。
A、a=1,b=2
B、I++;
C、a=b=5
D、y=int(x);
相关标签:
  • C语言
  • 中国青年政治学院
  • 测试卷