C语言程序设计__承德石油高等专科学校(17)--综合自测题(一)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.以下程序执行后的输出结果是( )。 #include <stdio.h> void main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } }
{ j=i*10+3;
if( 【2】 ) continue;
printf("%d\n", j ); } }
2.程序改错题:有 10 个整数,要求对他们按从小到大的顺序排序,请改正程序中的错误。(有三处错 误)
#include <stdio.h> void main() {int a[10], i, j, t; printf("input 10 numbers:\n"); /*****************error********************/ for(i=0;i<10;i++)
printf("the sorted numbers:\n"); for(i=0;i<10;i++)
printf("%d",a[i]); } 3.程序编写题:要将数组 a 中 n 个整数按相反顺序存放,如图 1 所示,将原数组中各元素的存放顺序改 成新数组所示的顺序,即将 a[0]和 a[n-1]对换,将 a[1]和 a[n-2]对换,......,直至完成。用函数 inv 来实现对 换过程,请编写用户自定义函数 inv()。 原数组 a:
char ch;
ch= 【1】 ;
if(ch>='A'&& 【2】 )
【3】
else if(
【4】
)
【5】 putchar(ch);
(2)下面程序的功能是:输出 1000 以内能被 3 整除且个位数为 3 的所有整数,请填空。 void main() { int i,j; for(i=0; 【1】 ;i++)
1234567890 新数组 a:
0987654321 #include <stdio.h> void inv( int *x, int n ) {
} void main( ) { int i, a[10]={1,2,3,4,5,6,7,8,9,0};
inv(a,10); //调用转换函数 printf("按相反顺序存放后的数组为:"); for(i=0; i<10; i++) printf("%4d", a[i]); }
A.0
B.1
C.2
D.3
26.有定义 int a=1234;,获取其百位数码的表达式为_______________________。
27.若有定义:char a=97,c;,则表达式 c=a+'8'-'3'的值为_________。
28.printf("%6.2f%%",1.0/3);的输出结果是____________。
34.以下程序输出结果为
#include <stdio.h> int f( ) {int b=0;
static int c=4; b=b+1; c=c+1; return b+c; } void main( ) {int a1,a2; a1=f( ); a2=f( ); printf("%d,%d",a1,a2); } 35.以下程序的输出结果是
A.char s[]={'1','2','3','\0'};
B.char s[]={"123"};
C.char s[]={"123\n"};
D.char s[4]={'1','2','3'};
14.下列数组定义语句中,正确的是()
A.int a[][]={1,2,3,4,5,6};
B.char a[2][3]= 'a','b';
A.char ch='\X2A'; B.char ch="c"; C.char ch=65; D.char ch=NULL; 4.设有定义:double d1,d2,h;,其中 d1 和 d2 分别为梯形的上下底边长,h 为梯形的高,则以下 C 语言表
达式不能正确计算其面积的是( )。
A.(d1+d2)*h/2
D.*(--p)
20.以下程序运行结果为( )。 #include <stdio.h> void main( ) { char a[]="Language",b[]="programe"; char *p,*q; int k; p=a;q=b; for(k=0;k<8;k++) if(*(p+k)!=*(q+k)) printf("%c",*(p+k)); }
A.地址值
Байду номын сангаас
B.NULL(0)
C.1
D.EOF(-1)
24.若输入字符串:abcde<回车>,则以下 while 循环体将执行( )次。
while((ch=getchar())=='e') printf("*");
A.0
B.1
C.5
D.无限次
25.设有数据定义语句 int i=4,x[5]={1,2,3};,则数组元素 x[i] 的值是( )。
A.p=&n; scanf"%d",&p);
B.p=&n; scanf("%d",*p);
C.scanf("%d",&n); *p=n;
D.p=&n; *p=m;
19.若有定义 int a[ ]={1,3,5,7,9,11}, *p=a;,则能够正确引用该数组元素的是( )。
A.a
B.a[6]
C.*(p--)
A.012 B.011122 C.12
D.01122
11.以下程序的功能为( )。
#include <stdio.h> void main() { int i,k=0;
for(i=1;i<=10;i+=2) k+=i;
printf("%d\n",k); } A.计算自然数 1~9 的累加和 C.计算自然数 1~9 的奇数之和
B.(d1+d2)/2*h
C.(d1+d2)*h*1/2
D.1/2*(d1+d2)*h
5.以下选项中,与 k=n++;完全等价的语句是( )。
A.k=n;n=n+1;
B.n=n+1;k=n;
C.k=++n;
D.k+=n+1;
6. 有以下程序,程序运行时输入:1<回车>2<回车>3<回车>,则输出的结果为( )。
32.程序输出结果为 。 #include <stdio.h> void fun(int a[ ], int n) { for(int i=0;i<n;i++) if(a[i]>0) a[i]*=2; } void main( ) { int b[4]={-2,3,4,1}; fun(b,4); for(int i=0;i<4;i++) printf("%d",b[i]); }
D.p.data.a
22.在 VC 编程环境下,若有如下定义: struct worker { int num; char name[12]; }s,*p;
则 sizeof(static worker)的值是( )。
A.16
B.4
C.12
D.4
23.执行 fopen 函数时发生错误,则函数的返回值是( )。
A.x%2==1
B.x/2
C.x%2!=0
D.x%2==0
8.读下面程序段,当 x=-3 时,输出 y 的值为( )。 int x,y; y=0; scanf("%d",&x); if(x>=0) if(x>0) y=1; else y=-1; printf("y=%d",y);
A.1
B.-1
C.0
33.程序输出结果为 。 #include <stdio.h> int fun(int n)
{ if(n==1) return 1; else return fun(n-1)+1;
} void main( ) { int i,j=0;
for(i=1;i<4;i++) j+=fun(i);
printf("%d\n",j); }
29.正确表示数学关系“-1<k<1”的 C 语言表达式为___________________。
30.假设已有#define M(r) r*r,则语句 printf("%d",M(2+3));的执行结果为 。
31.程序输出结果为 。 #include <stdio.h> int a,b; void fun( ) { a=10;b=20; } void main( ) { int a=3,b=9; fun(); printf("%d,%d\n",a,b); }
16.下列程序段的功能是给数组所有的元素输入数据,然后输出,请选择正确答案填空( )。 #include <stdio.h> void main() { int a[10],i=0;
while(i<10)
scanf("%d",
);
for(i=0;i<10;i++)
printf("%4d",a[i]);
D.不确定
9.下列语句将小写字母转化为大写字母,正确的语句为( )。
A.if('z'>=ch>='a') ch=ch-32;
B.if(ch>='a'&&ch<='z') ch=ch-32;
C.ch=('z'>=ch>='a')?ch-32:ch;
D.ch=(ch>='a'&&ch<='z')?ch:ch-32;
。 。
#include <stdio.h> void main( ) { int a[2][3]={{1,2,3},{4,5,6}};
int m,(*p)[3]; p=a; m=(**p)*((*p)[1])*(**(p+1)); printf("%d",m); }
二.综合应用题
1. 程 序 填 空 题 (1)以下程序段的功能是:对输入的大写字母循环移动 5 个位置后输出,如'A'变为'F','W'变为'B'。请将 程序段补充完整。
#include <stdio.h> void main( ) { int a,b,c;
scanf("%d%d%d",&a,&b,&c); printf("a+b+c=%d\n",a+b+c); }
A.6 B.a+b+c=6
C.123
D.不确定的值
7.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式( )。
scanf("%d",a[i]); /*****************error*******************/ for(i=1; i<10; i++)
for(j=0; j<10-i; j++) if(a[j]<a[j+1]) { a[j]=a[j+1]; a[j+1]=t; t=a[j];}
}
A. a+(i++) B.&a[i+1]
C.a+i
D.&a[++i]
17.以下正确的函数首部是( )。
A.void fun(int x,int y)
B.void fun(int x;int y)
C.void fun(int x,y)
D.void fun(x,y)
18.若有定义 int *p,m=5,n;,以下正确的程序段是( )。
A.Lanug
B.prorm
C.Language
D.programe
21.已知如下定义的结构类型变量,若有 p=&data,则对 data 中的成员 a 的正确引用是( )。 struct sk { int a; float b; }data,*p;
A.(*p).data.a
B.(*p).a
C.p->data
B.计算自然数 1~10 的偶数之和 D.计算自然数 1~10 的累加和
12.有以下程序段 int k=0; while(k=1) k++;
while 循环执行的次数是( )。
A.无限次
B.1 次
C.语法错误,不能执行 D.一次也不执行
13.定义一个名为 s 的字符型数组,并且赋初值为字符串"123"的错误语句是( )。
C.int a[][3]={1,2,3,4,5,6};
D.int a[][]={{1,2,3},{4,5,6}};
15.判断字符串 str1 是否大于字符串 str2,应当使用( )。
A.if(str1>str2) B.if(strcmp(str1,str2)<0) C.if(strcmp(str2,str1)>0) D.if(strcmp(str1,str2)>0)
综合测试题(一)
一.基础知识题
1.构成 C 语言程序的基本单位是( )。
A.框架 B.预处理
C.函数
D.语句
2.以下可用作自定义标识符的一组是( )。
A.void、return、if
B.Max、_abc、Main
C.printf、include、fabs
D.2abc、pay$、sum-10
3.下面定义字符型变量 ch 的语句不正确的是( )。
相关文档
最新文档