版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、“C语言程序设计”复习题一一单项选择题1组成C程序的基本单位是_。A)表达式与语句 B)若干文件 C)函数 D)main函数2下列为字符常量的是_。A)HE B)"I" C)'Z' D)She3若变量c为char类型,能正确判断c为小写字母的表达式是_。A)'a'<=c<= 'z' B)(c>= 'a')|(c<= 'z') C) ('a'<=c)and ('z'>=c) D)(c>='a')&&a
2、mp;(c<='z')4在C语言中,正确的int类型的常数是_。A)2U B)059 C)3a D)0xAF5.下列变量定义正确的是_。A)int x_1 ; y; B)int x=y=5 ;C)int for=4; D)int printf=2,x_y=2;6以下函数原型说明正确的是_。A)float add(int x, int y) ; B)int add(int x;int y) ;C)char add( x,y) ; D)int add(char x ) ; 7有程序段如下,不能表示为地址的是_。int x=2,*p; p=&x; x=x+1; A)&a
3、mp;x B)p C)&p D)&(x+1)8简单变量做实参时,实参与其对应的形参之间的数据传递方式是_。A)双向值传递方式 B)地址传递方式C)单向值传递方式 D)用户指定传递方式11任何复杂的程序,都是由_构成的。A)分支结构、顺序结构、过程结构 B)循环结构、分支结构、过程结构C)顺序结构、循环结构、分支结构 D)循环结构、分支结构12有以下定义和赋值语句,能够正确表示a12的表达式是 。int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*p)3= a;A)*(*p+1)+2) B)(*p+1)+2 C)*(*(p+5) D)*(*(p+1)
4、+2)13以下说法中正确的是_。A)程序总是从第一个定义的函数开始执行B)在程序中,要调用的函数必须在main函数中定义C)程序总是从main函数开始执行的D)程序中的main函数必须放在程序的开始部分15以下说法错误的是_。A)dowhile语句与while语句的区别仅是关键词“while”出现的位置不同B)while语句是先进行循环条件判断,后执行循环体的C)dowhile是先执行循环体,后进行循环条件判断D)while、dowhile和for语句的循环体都可以是空语句16C语言程序是从main函数开始执行,这个函数写在_。A)程序文件开始 B)它所调用函数的前面C)程序文件最后 D)程序
5、文件任何位置17在语言类型说明中,int、char、short等类型的长度是_。A)由用户自己定义的 B)与机器字长有关的C)固定的 D)任意的18以下字符中,不正确的C语言转义字符分别是_。A) B)011 C) D)xaa19以下选项中,合法的语言关键字是_。A)integer B)Char C)short D)Long20若一个外部变量的定义形式为static int x ; 其中static的作用是_。A)将变量存放在静态存储区,使x的值可以永久保留B)使变量x可以由系统自动初始化C)使x只能在本文件内引用D)使x的值可以永久保留21以下叙述错误的是_。A)语言本身没有输入输出语句B)
6、一个可执行的源程序必须包含一个main函数C)程序中,注释说明只能位于一条语句的后面D)程序的基本组成单位是函数22设有以下程序片段,请问执行后的输出结果是_。char ch='A'ch=(ch>='a' && ch<='z')?ch:ch-'A'+'a'printf("%c" , ch);A)A B)a C)Z D)z23int (*ptr) ();说明了_。A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返
7、回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针26如果在一个函数的复合语句中定义一个变量,以下叙述正确的是_。A)该变量在该函数中有效 B)该变量只在该复合语句中有效C)该变量为不合法的变量 D)该变量在本程序范围内有效27能表示x为偶数的表达式是_。A)x %2=0 B)x%2=1 C)x%2 D)x%2!=028C语言中运算对象必须是整型的运算符是_。A) % B) / C)= D) <=29下列数组定义正确的是_。A)int a5,b2,3; B)char no(30); C)char x; D)int x5=1,2,3;30变量定义如下:int
8、x;float y;以下输入语句正确的是_。A)scanf("%f%f",&y,&x); B)scanf("%f%d", y, x);C)scanf("%f%d",&y,&x); D)scanf("%5.2f%2d",&y,&x);32函数形参与实参之间的传递是“值传递”,以下叙述正确的是_。A)实参和与其对应的形参共用一个存储单元B)实参和与其对应的形参各占用独立的存储单元C)当实参和与其对应的形参同名时才共用一个存储单元D)形参是形式的,不占用存储单元33以下if
9、语句错误的是_。A)if (x<y) x+; y+; else x-; y-;B)if (x) x+y; C)if (x<y); D)if (x!=y) scanf (" %d",&x) ; else x+;34若有定义:int (*p)3; 则p 。A)是一个指向整型变量的指针B)是一个指针数组名C)是一个指针,它指向一个含有3个整型元素的一维数组D)定义不合法35t为int类型,进入下面的循环之前t的值为0,以下叙述正确的是_。while( t=l ) A)循环控制表达式的值为0 B)循环控制表达式的值为1C)循环控制表达式不合法 D)以上说法都不对
10、36以下说法正确的是_。A)C语言源程序无论包含了多少函数,总是从main函数开始执行。B)main是由C语言提供的,并不需要用户自己编写。C)调用C语言标准库函数时,程序中要用到include命令,它也是C语言的一种语句。D)在C语言中,要调用的函数必须在main函数中定义。37若0<=i<10,则下列_是对数组元素的错误引用。int a =1,2,3,4,5,6,7,8,9,0,*p, i;p=a;A)*(a+ i) B)ap-a C)p+ i D)*(&ai)38下列表达式的值为1.5的是_。int x;float y;A)x=3/2.0 B)x=3/2 C) y=3
11、/2 D)y=3/2.039下列语句实现的功能与其printf语句中所表达的含义相符的是_。A) int a,b,c; scanf ("%d%d%d" ,&a,&b,&c); if(a=b=c) printf("这是一个等边三角形n");B) int a,b,c; scanf ("%d%d%d" ,&a,&b,&c); if(a+b>c|a+c>b| c+b>a)printf("这三条边能组成一个三角形n");C) int a,b,c; scanf
12、("%d%d%d" ,&a,&b,&c); if(a=b&&b=c) printf("这是一个等边三角形n");D) int a,b,c; scanf ("%d%d%d" ,&a,&b,&c); if(a=b|b=c) printf("这是一个等腰三角形n")40下列关于#include命令的叙述中,错误的是_。A)#include命令中,文件名可以用双引号或尖括号括起来B)一个被包含文件中又可以包含另一个被包含文件C)一个#include命令中可以指
13、定多个被包含文件D)一个#include命令中只能指定一个被包含文件41若a为整型变量,则以下语句_。a=-2L;printf (“%dn”,a);A)赋值不合法 B) 输出值为-2 C)输出为不确定值 D)输出值为242若有说明语句:int y4=0,0,0,0,0,0; 则正确的叙述是_。A)数组y的每个元素都可得到初值0B)二维数组y的行数为1C)该说明等价于int y04=0;D)有元素y00至y05可得到初值,其余元素均得不到初值044已知:char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类型是_。A)int B)cha
14、r C)double D)float46若有以下变量说明和数据的输入方式,则正确的输入语句为_。变量说明:float x1,x2;数据的输入方式:4.52<回车> 3.5<回车>A)scanf(“%f,%f”,&x1,&x2); B)scanf(“%f%f”,&x1,&x2);C)scanf(“%3.2f,%2.1f”,&x1,&x2); D)scanf(“%3.2f%2.1f”,&x1,&x2);47若变量已正确定义,与语句 if(a>b)k=0;else k=1;等效的是_。A)k=(a>b
15、)?1:0? B)k=a>b;C)k=a<=b; D)a<=b?0:1;48若有定义:int x,*pb;则正确的赋值表达式是_。A)pb=&x B)pb=x C)*pb=&x D)*pb=*x49已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为_。A)p0 B)*p C)&*a D)*&a50在语言中,引用数组元素时,其数组下标的数据类型允许是_。A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式51若有定义:int b5;则以下对b 数组元素的正确引用是_。A)*&b5 B)b
16、+2 C)*(*(b+2) D)*(b+2)52设有定义语句“char s=”123”;”,则表达式“s3”的值是_。A)1 B)3 C)0 D)语法出错53语句if (!i ) i+; 中的条件表达式 !i 等价于_。A)i=0 B)i!=1 C)i!=0 D)-i54设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句_。if (x=y) printf(" x is equal to y."); A)语法错 B)不能判断x和y是否相等C)编译出错 D)能判断x和y是否相等55C语言中规定,if语句的嵌套结构中,else总是与_配对。A)与最近的if 配套
17、 B)与第一个if 配套C)按缩进位置相同的if配套 D)与最近的且尚未配对的if 配套56以下有关switch语句的正确说法是_。A)break语句是语句中必须的一部分B)在switch 语句中可以根据需要使用或不使用break语句C)break语句在switch 语句中不可以使用D)在switch 语句中的每一个case都要用break语句58当执行以下程序时,_。#include<stdio.h>void main() int a; while(a=5) printf("%d ",a-); A)循环体将执行5次 B)循环体将执行0次C)循环体将执行无限次
18、D)系统会当机。59以下函数的类型是_。int sum(double x, double y) double s; s=x+y; return s;A)字符型 B)不确定 C)整型 D)实型60以下叙述不正确的是_。A)一个C源程序文件必须包含一个main( )函数B)一个C源程序文件可由一个函数组成C)一个C源程序文件是一个编译单位D)一个C源程序文件可由多个函数组成61若用数组名作为函数调用时的参数,则实际上传递给形参的是_。A)数组元素的个数 B)数组的第一个元素值C)数组中全部元素的植 D)数组首地址63以下叙述正确的是_。A)函数的定义和函数的调用均不可以嵌套B)函数的定义和函数的调
19、用均可以嵌套C)函数的定义可以嵌套,但函数的调用均不可以嵌套D)函数的定义不可以嵌套,但函数的调用均可以嵌套67下列对字符串的定义中,错误的是_ 。A)char str5= "abcde" B)char str = "abcde"C)char *str ="abcde" D)char str = 'a', 'b', 'c', 'd', 'e', '0'68若有定义char x = "12345" char y =
20、9;1', '2', '3', '4', '5';则 。A)x数组与y数组的长度相同 B)x数组长度大于y的长度C)x 数组长度小于y数组长度 D)x数组等价与y 数组二程序阅读题1阅读以下程序,若输入60<回车>,写出程序运行结果。#include<stdio.h>void main() int x; scanf("%d ",&x); if (x>=60) printf("pass"); else printf("fail"
21、);2阅读以下程序,若输入5<回车>,写出程序运行结果。#include <stdio.h>int main( ) int i, n; double fact; scanf("%d", &n); fact=1; for(i=1;i<=n;i+) fact*=i; printf("%.0fn", fact);3阅读以下程序,若输入a<回车>,写出程序运行结果。#include <stdio.h>int main( ) char ch; ch=getchar(); if(ch>='a
22、'&&ch<='z') ch=ch-a+A; else if(ch>='A'&&ch<='A') ch=ch-'A' + 'a' putchar(ch);6写出以下程序的运行结果。#include<stdio.h>int fun(char *s) char *p=s; while(*p!='0') p+; return(p-s);void main( ) printf("%dn ",fun("hell
23、o world");7阅读以下程序,若输入1 9 3 4 0<回车>,写出程序运行结果。#include <stdio.h>int main( ) int x, sum; scanf("%d", &x); sum=0; while(x>0) if(x%2=0) sum+=x; scanf("%d", &x); printf("%dn", sum);8阅读以下程序,若输入4 5 7 9 5<回车>,写出程序运行结果。#include <stdio.h>int
24、 main( ) int i, index, n; int a10; scanf("%d", &n); for(i=0; i<n; i+) scanf("%d", &ai); index=0; for(i=1;i<n;i+) if(ai<aindex) index=i; printf("min=%d,index=%dn", aindex,index);9写出以下程序的运行结果。#include<stdio.h> void main() int num=0; while (num<=2
25、) printf("%d ",num); num+; 10写出以下程序的运行结果。#include<stdio.h>void increment()static int x=0; x+=1; printf("%d",x);void main() increment(); increment(); increment();11阅读以下程序,若输入10<回车>,写出程序运行结果。#include "stdio.h"int main( )int n;void dectobin(int n);scanf("%
26、d",&n);dectobin(n);printf("n"); void dectobin(int n) int a16=0; int i=0; while(n!=0) ai=n%2; i+; n/=2; i=i-1; while(i>=0) printf("%d",ai); i-; 12写出以下程序的运行结果。#include<stdio.h>int x;void cude() x=x*x*x; void main() x=5; cude(); printf("%dn",x);13写出以下程序的运
27、行结果。#include<stdio.h>void main() int a =1,3,5,7,9; int y=0,x,*p; p=&a0; for(x=0; x<3; x+) y+=*(p+x); printf("%dn",y); 14阅读以下程序,写出运行结果。#include<stdio.h>int add(int a,int b) int c; c=a+b; return c; void print(int t) printf("z=%dn",t); void main() int x,y,z; void
28、print(int t); x=1;y=2; z=add(x,y); print(z); 15写出以下程序的运行结果。#include<stdio.h>struct mine int qa, qb, qc; ; void main() struct mine s2 = 1,2,3,4,5,6; int answer; answer = s0.qa * s1.qb; printf("%d n", answer); 16写出以下程序的输出结果。#include<stdio.h>void main() int y=5; for( ; y>0; y-)
29、 if(y%2=0) continue; printf("%d", y); 17阅读以下程序,写出程序的功能。#include<stdio.h>void main() int a10=2,4,0,-5,10,6,-8,9,6,7; int i,s=0,count=0; for(i=0; i<10; i+) if(ai>0) s+=ai,count+; else continue; printf ("s= %d , count=%dn", s ,count); 18阅读以下程序,写出程序的运行结果。#include<stdio
30、.h>#define N 6void main() int aN=4,5,8,3,6,1; int j,t; for(j=0; j<N-1; j+) if(aj>aj+1) t=aj; aj=aj+1; aj+1=t; for(j=0; j<N; j+) printf("%5d",aj); 19阅读以下程序,写出此程序的功能。#include<stdio.h>void main() char ch; int c=0,s=0,n=0,other=0; while (ch=getchar()!='n') if (ch>=
31、'a'&&ch<='z')|(ch>='A'&&ch<='Z') c+; else if (ch=' ') s+; else if (ch>='0'&&ch<='9') n+; else other+; printf("Char:%dnSpace:%dnNumber:%dnOther:%dn",c,s,n,other); 20阅读以下程序,写出此程序的功能。#define N 10#in
32、clude<stdio.h>void main() int k,i,p,t,aN+1; for (i=1; i<=N; i+) scanf("%d",&ai); for (k=1; k<N; k+) p=k; for (i=k+1; i<=N; i+) if (ap<ai) p=i; t=ap; ap=ak; ak=t; for (i=1; i<=N; i+) printf("%d ",ai); printf("n"); 21阅读下面的程序,写出它的运行结果。#include<s
33、tdio.h>long func(int m) long s; if (m=1) s=1; else s=m+func(m-1); return(s);void main() long y; y=func(4); printf( "%2d",y);22阅读以下程序,写出程序运行的结果。#include<stdio.h>int f(int x,int y);void main() int a=1,b=2,c; c=f(a,b); printf("%dn",c);int f(int x, int y) int z; z=(x>y)?x
34、:y ; return(z);23写出以下程序输出结果。#include <stdio.h>void main() int *p; int a6=1,2,3,4,5,6; p=a; for (;p<a+6;p+) printf("%d ",*p); printf("n");24阅读程序,写出程序的输出结果。#include<stdio.h>void main( ) static char a ="street",b ="string" char *ptr1=a, *ptr2=b; in
35、t k; for (k=0; k<7; k+) if (*(ptr1+k)=*(ptr2+k) printf("%c",*(ptr1+k);25写出以下函数的功能。void fun1( char *s1, const char *s2 ) while ( *s1 != '0' ) +s1; for ( ; *s1 = *s2; s1+, s2+ ) ; 三程序填空题1以下程序的功能是计算xn,请填空。#include <stdio.h>int main( )
36、 int i, n; double x, mypow; scanf("%lf%d", &x, &n);
37、60;
38、 for(i=1;i<= i+) mypow*=x;
39、 printf("%.2fn", mypow);2以下程序的功能是计算11/21/31/4.的前n 项和,请填空。#include <stdio.h>int main( ) int i, n; float sum;
40、60; scanf("%d", &n); ; for(i=1;i<=n;
41、; )
42、; printf("%.3fn", sum); 3以下程序的功能是从键盘输入n个整数,输出其中的最大值,请填空。#include <stdio.h>int main( )int a, max,i,n;scanf("%d", &n);scanf("%d", &max); for(
43、160; ;i<n;i+) if( &
44、#160; ) max=a;printf("min is %dn", max); 4以下程序用于计算职工的个人所得税,即输入一个职工的月薪salary,输出应交的个人所得税tax(保留2 位小数)。个人所得税的计算公式tax = rate * (salary-1500) (当salary 1500 时,rate = 0, 当1500 < salary 5000 时,rate = 0.15,当5000 < salary 时,rate = 0.20
45、)。#include <stdio.h>int main( ) float rate, salary, tax; scanf("%f", &salary); if( ) rate=0;
46、160; else if( ) rate=0.15; else rate=0.20; tax = rate * (salary-1500) ;printf("
47、tax=%0.2fn", tax);5以下程序的功能是计算n!,请填空。#include <stdio.h>int main( ) int i, n; double fact; scanf("%d", &n);
48、160; (1) ; for(i=1; (2) i+) &
49、#160; fact*=i; printf("%.0fn", fact);6以下程序的功能是计算11/21/31/4.前n 项和,请填空。#include <stdio.h>int main( ) int i, n, flag; &
50、#160; float sum; scanf("%d", &n); (3) ; sum=0;
51、 for(i=1;i<=n; (4) ) sum+=(float)flag/i; &
52、#160; (5) printf("%.3fn", sum);
53、0; 7以下函数conj把两个字符串str1和str2连接起来,请填空。void conj(char str1,char str2)int i=0,j=0;while(str1i!= '0' ) ; while(str2j!= '0')
54、0; =str2j+;str1i= '0'8以下程序的功能是输出数组中所有元素的和,请填空。#include<stdio.h>void main( ) int a =0,1,2,3,4,5,6,7,8,9; int s=0 , i, *p;
55、0; p= for (i=0; i<10; i+)
56、 printf("sum=%d", s);9以下程序的功能是从键盘输入n个整数,输出其中的最小值,请填空。#include <stdio.h>int main( )int a, min,i,n;scanf("%d", &n);scanf("%d", &min); for( &
57、#160; ;i<n;i+) if(a<min)
58、160; printf("min is %dn", min);10以下程序对输入的1000以下的整数,求出其相应的个位数、十位数和百位数。#include<stdio.h>void main() int x,a,b,c; do
59、60; printf("输入一个1000以下的整数:"); scanf("%d",&x); printf("n"); &
60、#160; while( ); a=x/100; b=(x-a*100)/10; c=
61、160; ; printf("%d的个位数是%d,十位数是%d,百位数是%dn",x,c,b,a); 11以下程序主函数main中由键盘输入一维数组各元素值,并输出它们的平均值,数组元素平均值由average函数求得。请填写缺少的语句。#define N 20#include<stdio.h>float average (float *p,int n) ; void main( )
62、 float aN,av; int i; for (i=0; i<N; i+) scanf ( "%f", &ai); av=
63、; printf ("average=%10.2fn",av); float average (float *p,int n) float s=0.0; int i; for (i=1; i<=n; i+)
64、 s= return ( ); 12以下程序的功能是对10个整数从小到大排序#include<stdio.h>void sort(
65、int arr,int n); void main() int a10,*p,i; printf("input 10 numbers:"); for (i=0; i<10; i+)
66、60; scanf("%d",&ai); printf("nthe original array is:"); for(p=a; p<a+10; p+) printf("%d
67、; ",*p); printf("nthe present array is:"); for (p=a; p<a+10; p+)
68、60; printf("%d ",*p); void sort(int arr ,int n) int *p1,*p2,temp; for (p1=arr ; p1<arr+(n-1); p1+) &
69、#160; for ( ; p2<arr+n; p2+) if (
70、; ) temp=*p1; *p1=*p2; *p2=temp; 13以下程序完成对键盘输入的正整数进行求和、平均值、最
71、大值和最小值,输入负数时循环结束。请填写缺少的语句。#include<stdio.h>void main() int i,j,n,max,min,a100,s=0; for(i=1; i<=100; i+)
72、 scanf("%d,",&ai); if( ) &
73、#160; s+=ai; n=i-1; min=max=a1; for(j=2; j<=n; j+)
74、160; if( ) max=aj; if(
75、 ) min=aj; printf("n=%dtaverage=%ftmax=%dtmin=%dn",n,(float)s/n,max,min); 14以下函数用于统计一行字符串中的单词个数,单词之间用空格分隔,请填写缺少的语句。int word_num(char str1 ) int i,num=0,word=0; for(i=0;str1i!= i+) &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京九洲科瑞科技有限公司招聘技术工程师等岗位9人笔试历年常考点试题专练附带答案详解
- 2025内蒙古锡林郭勒盟珠宝城老凤祥招聘26人笔试历年难易错考点试卷带答案解析
- 2025内蒙古能源发电投资集团有限公司高校毕业生招聘150人笔试历年常考点试题专练附带答案详解
- 2025内蒙古土地资源收储投资(集团)有限公司常态化招聘急需紧缺专业人员18人(第十四批)笔试历年常考点试题专练附带答案详解
- 2025内蒙古亿利化学工业有限公司招聘30人笔试历年难易错考点试卷带答案解析
- 2025兴业银行泸州分行社会招聘笔试历年典型考题及考点剖析附带答案详解
- 2025兴业银行呼和浩特分行“雏雁”暑期实习生招聘笔试历年典型考题及考点剖析附带答案详解2套
- 2025京能服务管理有限公司拟在京能集团系统内部开展选聘5人笔试历年常考点试题专练附带答案详解
- 公司战略推演方案
- 公司投融资管理方案
- 2025年海南初二地理生物会考真题试卷(含答案)
- 博物馆安全工作制度
- 2026年妇科腹部手术病人的护理课件
- 2026年首架航空器生产试飞特许飞行证申请流程
- 2026年湖南湘西事业单位考试公共基础知识真题及参考答案(一)
- 环境犯罪案例分析
- 心血管筛查项目培训课件
- 企业短视频运营体系制度
- 天津2025年中新天津生态城教育系统专任教师招聘120人笔试历年参考题库附带答案详解
- 涉及专利的团体标准管理规范 TSDIPSA 016-2023
- 2025年公路水运工程试验检测《公共基础》检师真题及答案
评论
0/150
提交评论