郑州城市学院成教《C程序设计基础》高起专原题及答案(青书学堂) 图1
1、以下选项中不能正确定义cI为结构体类型变量的是( )
A.struct color{ int red; int green; int blue; }; struct color cl;
B.struct color cl { int red; int green; int blue; };
C.struct color{ int red; int green; int blue;} cl;
D.struct{ int red; int green; int blue;} cl;
答案:B
2、设有定义:a=1,b=2,c=3;
以下语句中执行效果与其它三个不同的是 。
A.if(a>b) c=a;a=b;b=c;
B. if(a>b) {c=a,a=b,b=c;}
C.if(a>b) c=a,a=b,b=c;
D. if(a>b) {c=a;a=b;b=c;}
答案:C
3、以下关于变量的作用域叙述不正确的是( )
A.在函数内部定义的变量是局部变量
B.函数中的形式参数是局部变量
C.全局变量的作用范围仅限于其所在的文件
D.局部变量的作用范围仅限于本函数
答案:C
4、若有如下宏定义:
#define N 2
#define Y(n) ((N+1)*n)
则执行赋值语句z=2*(N+Y(5)); 后z的值是 。
A. 表达式有误
B.34
C.70
D.无确定值
答案:B
5、以下关于C函数返回值的叙述正确的是( )
A.被调函数中只有使用return语句才能返回主调函数
B.使用一个return语句可以返回多个函数值
C.函数返回值类型取决于return语句中的表达式类型
D.函数返回值类型取决于定义该函数时所指定的类型
答案:D
6、下列关于函数的叙述正确的是( )
A.每个C程序源文件中都必须有一个main()函数
B.C程序中main()函数的位置是固定的
C.C程序中所有函数之间都可以相互调用,与函数所在位置无关
D.在C程序的函数中不能定义另一个函数
答案:D
7、若有以下定义,则数值为4的正确表达式是 。
int a[10]={1,2,3,4,5,6,7,8,9,10};char c=’a’,d,g;
A)a[g-c] B)a[4] C)a[’d’-’c’] D)a[‘d’-c]
A.a[g-c]
B.a[4]
C.a[’d’-’c’]
D.a[‘d’-c]
答案:D
8、下列字符串 “a\x21\\\tp\202q”的长度是 。
A.7
B.9
C.15
D.16
答案:A
9、假设x,y为整型变量,则执行如下程序段后y的值为 。
for(x=1,y=1;y<=50;y++)
{ if(x>=10)
break;
if(x%2==1)
{x+=5;continue;}
x-=3;
}
A.2
B.4
C.6
D.8
答案:C
10、以下不正确的字符串赋值语句是 。
A. char *s; s="abcde";
B.char s[ ]="abcde";
C.char s[10]; s="abcde";
D. char *s="abcde";
答案:C
11、定义如下变量和数组:int j;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是 。for (j=2; j>=0; j--)
printf("%2d",x[j][2-j]);
A.1 5 9
B.1 4 7
C.7 5 3
D.3 6 9
答案:C
12、int a=1,b=2,c=4,d=6,m=2,n=3;执行(m=a>b)&&(n=c>d)后n的值为 。
A)0 B)1 C)3 D)4
A.0
B.1
C.3
D.4
答案:C
13、若有语句"int a=12;"则执行语句"a+=a*=12;”后,a的值是_____。
A.12
B.144
C.288
D.24
答案:C
14、下列常用转义字符中不正确的是_____。
A.\\
B.\c
C.\012
D.\t
答案:B
15、定义变量:int x=3,y=2;float a=2.5;则表达式 (x+y)/2+(int)a的值为 。
A.5
B.4
C.3
D.3.5
答案:B
16、以下程序输出结果是( )。
int fun(int x,int y,int *cp)
{ *cp=x+y; y=y-x; }
main()
{ int a, b, c=0;
a=10; b=40;
fun(a,b,&c);
printf("%d ,%d\n", b,c);}
A.40 ,0
B.30,0
C.40,50
D.30,50
答案:C
17、以下程序执行后输出结果是( )。
main()
{ char ch[7]={ "65ab21"};
int i,s=0
for(i=0;ch>='0' && ch<='9';i+=1)
s=10*s+ch-'0';
printf("%d\n",s); }
A.2ba56
B.6
C.6521
D.65
答案:D
18、以下程序的运行结果是( )。
int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=7, b=5;
fun();
printf("%d,%d \n", a,b); }
A.100,200
B.5,7
C.200,100
D.7,5
答案:D
19、以下程序运行后,输出结果是( ) 。
func(int a, int b)
{ static int m=0,i=2;
i+=m+1; m=i+a+b;
return(m); }
main()
{ int k=4,m=1,p;
p=func(k,m);printf("%d",p);
p=func(k,m);printf("%d\n",p); }
A.8,15
B.8,16
C.8,17
D.8,8
答案:C
20、以下程序执行后的输出结果是( )。
#include "stdio.h"
main( )
{int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if ((c-1>=d)==1)
printf("%d\n",d);
else
printf("%d\n",d+2);}
A.2
B.3
C.4
D.编译时有错误,无结果
答案:A
21、有以下程序:
#include <stdio.h>
struct S
{ int a, b; } data[2]={10,100,20,200};
void main()
{ struct S p=data[1];
printf("%d\n", ++(p.a) ); }
程序运行后的输出结果是( )。
A.10
B.11
C.20
D.21
答案:D
22、以下程序执行后的输出结果是( ) 。main(){ int i;for (i=0;i<3;i+=2)switch(i)
A.012
B.022
C.120
D.011
答案:B
23、下列程序段的输出结果是( )。int k, s;
for(k=0,s=0;k<10;k++,s--)
if(s>k) break;
else s+=k;
printf("%d,%d",k,s);
A.4,5
B.4,6
C.6,9
D.A、B、C都不对
答案:C
24、下面程序循环体的执行次数是( )。
#include "stdio.h"
main()
{int i,j;
for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d \n",i);}
A.0
B.1
C.2
D.3
答案:B
25、下列程序的输出结果是( )。#include "stdio.h"main(){ int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);
A.45
B.20
C.25
D.36
答案:C
26、当执行下面程序且输入:Hello时,输出的结果是( )。#include<stdio.h>#include<string.h>main(){ char ss[10]="123456789";gets(ss); printf("%s\n",ss); }
A.Hello6789
B.Hello
C.12345Hello
D.Hello1234
答案:B
27、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )。
A.k%2
B.k%2==1
C.(k%2)!=0
D.!(k%2==1)
答案:D
28、下列程序执行后的输出结果是(小数点后只写1位)( )。main( ){ double d; float f; long k; int i;i=f=k=d=20/3;printf("%lf%f%ld%d \n", d,f,k,i);}
A.6 6 6.0 6.0
B.6 6 6.7 6.7
C.6.7 6.7 6 6
D.6.0 6.0 6 6
答案:D
29、设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=32+y)后,x的值为 ( )。
A.4
B.16
C.36
D.32
答案:C
30、下列各语句序列中,能够将变量u和s中的较大值赋值到变量t中的是( )。
A.t=s ; if(u>s) t=u;
B.if(u>s) t=u ; t=s;
C.t=u ; if(u>s)t=s;
D.if(u>s)t=s ; else t=u;
答案:A
多选题
31、利用循环求1到10的和值,循环控制i,和值变量sum;则循环体中求和的式子正确的是( )。
A.sum=sum+i
B.sum+=i
C.sum=i
D.i=sum+i
答案:AB
32、下面关于程序中使用while描述正确的是( )。
A.while结构中可以嵌入if结构
B.while结构中可以嵌入switch结构
C.while结构中不能嵌入选择结构
D.if选择结构中可以包含循环结构while
答案:ABD
33、下面关于while循环结构概念中描述正确的项是( )。
A.while结构是先进行条件判断,如果条件为真则执行while后面{}里面的语句
B.while结构是先执行循环体,然后进行条件判断,如果条件为真则执行while后面{}里面的语句
C.while结构是先进行条件判断,如果条件为假则执行while后面{}里面的语句
D.while循环结构如果条件为假一次循环也不进行
答案:AD
34、下面程序是用while输出1-200,下列说法不正确的是()。
#include "stdio.h"
void main0
{
inti=1;
while(i<=200)
{
printf("%od\t",i):
___________
}
}
A.程序的空白处没添任何内容,程序执行后可以输出1-200的值
B.while结构可以实现多分支选择判断
C.while结构只能用于循环次数确认的情况
D.while结构无论条件成立与否都会执行循环体
答案:ABCD
35、累乘求积中,与s=i;相同的是( )。
A.i=s;
B.s=si;
C.i=si;
D.s=is;
答案:BD
36、while循环格式中,对于表达式1、2、3描述正确的有( )。
A.表达式1代表初始值
B.表达式2代表增量
C.表达式2代表条件
D.表达式3代表增量
答案:ACD
37、已知p=5,i=2;则p=pi语句执行中关于p的值说明正确的是( )。
A.执行后等号左边的p是10
B.执行中等号右边的p的值是5
C.执行后等号左边的p是5
D.执行中等号右边的p的值是10
答案:AB
38、利用循环求1到5的和值,已知i=1,sum=0;利用循环每次让sum求和,然后i++;判断条件是i<6;则求和的循环操作是()。
A.sum=sum+i
B.sum+=i
C.sum=i
D.i=sum+i
答案:AB
39、if(表达式)0这段代码在程序中的表达式可以出现的形式为( )。
A.算术表达式
B.关系表达式
C.逻辑表达式
D.数值0或1
答案:ABCD
40、default使用说法正确的是( )。
A.switch结构中的default是注释语句,不执行
B.default与case语句的顺序是任意的
C.default只能写在所有case语句之后
D.default在switch结构中可以省略,但一般不省略
答案:BD
41、编程实现:求一个一维整型数组的最大值及下标,数组长度为10。
答案:#include "stdio.h"
main()
{ int i,a[10],max,below;
for(i=0;i<10;i++)
scanf("%d",&a);
max=a[0],below=0;
for(i=0;i<10;i++)
if(a>max)
{ max=a;
below=i; }
printf("max=%d,below=%d\n",max,below);}