void main() {int x=-1,y=4; int k;k=++x<=0&&!(y--<=0); printf(\"%d,%d,%d\
A.0,0,3 B.0,1,2, C.1,0,3, D.1,1,2
7、 为了避免嵌套的if-else语句的二义性,C语言规定else总是与( 成配对关系。
A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if
8、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(main() {int x;
scanf(“%d“,&x); if(x++>5) printf(“%d”,x); else
printf(“%d\\n”,x--); }
A.7和5 B.6和3 C.7和4 D.6和4 9、若变量c为char类型,能正确判断出c为小写字母的表达式是( A. 'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C. ('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z') 10、在定义int a[10];之后,对a的引用正确的是( )。
第6页,共29页
))组 ))
A.a[10] B.a[6.3] C.a(6) D.a[10-10] 11、定义如下变量的数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下列语句的输出结果是( ) for(i=0;i<3;i++) printf(“%d”,x[i][2-i]);
A.357 B.147 C.159 D.369 12. 在C语言中,形参的缺省存储类是( ) A. auto B. register C. static D. extern
13. C语言函数返回值的类型是由( ) 决定的。 A.return语句中的表达式类型 B.调用函数的主调函数类型 C.调用函数时临时分配的 D.定义函数时所指定的函数类型
14.设#define NUM 1 + 2,则int var = 2 * NUM * 3 - NUM; var的值是多少?( ) A. 15 B. 19 C. 9 D. 5
15.若有以下定义和语句:char strl[] = \"string\ 则用以复制字符串的正确方法是( )。
A. strcpy(str2, \"Hello\"); B. strcpy(strl, \"Hello\"); C. str2 = str1; D. str1 = \"Hello\";
二、填空题(每空2分,共30分)
1、结构化设计中的三种基本结构是顺序结构、 、 。 2、若函数调用语句f(a, b, f(a + b, a - b, b));,则函数f的参数个数是 。 3、定义int x,y;执行y=(x=1,++x,x+2);语句后,y的值是 。 4、若用数组名作为函数调用的实参,则实参传递给形参的是____ __。 5、在C语言中,表示逻辑\"真\"值用_______表示。
6、设int a[3][4] = {{1, 2, 5, 3}, {2, 4, 7, 9}, {3, 6, 5, 8}};则表达式a[1][2] + a[2][3]的值是________。
7、scanf函数是一个标准库函数,它的函数原型在头文件_______中。 8、设char s[10] = \"abcd\,则s和t在内存中分配的字节数分别是_____和 。 9、有以下程序段:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=*(p+5);
b中的值是 。
10、设char s[] = {\"E_mail\,则执行printf(\"%d\\n\后输出的值是____。 11、在循环中,结束单次循环用哪条语句 。
第7页,共29页
12、有如下语句:
swich(t) {
case 0:s=2;break; case 1:
case 2:s=3;break; case 3:s=4; case 4:s=5; cefault:s=6; }
当t=1时,s为 ;当t=3时,s为 。
三、判断题(每题1分,共10分)
1、逻辑运算符的优先级别高于算术运算符。( ) 2、在C语言中,不允许在函数中再定义函数。( ) 3、C语言中可以把一个字符串赋给一个字符变量。( ) 4、getchar函数的功能是接收从键盘输入的一串字符。( )
5、语句int *num[]={“china”,”japan”,”usa”};数组num[]中元素都是指针。( ) 6、结构体比共用体更节省内存空间。( ) 7、c语言编译生成的文件名后缀为*.exe。( )
8、函数参数值传递中,实参不随形参的改变而改变。( )
9、有语句int a[3][4],(*p)[4];p=a;,则*(p+1)表示的数组a[0][1]元素。( ) 10、局部变量和全局变量可以重名。( )
模拟题二答案
一、 选择题:本大题共15个小题,每小题2分,共30分。 1.C 11.A 2.C 12.A 3.B 13.D 4.D 14.C 5.B 15.B 6.C 7.C 8.A 9.D 10.D 二、 填空题:本大题共15个小题,每小题2分,共30分 1. 循环结构 、 选择结构 2. 3 3. 4 4. 地址 5. 1 6. 15 7. stdio.h 8. 10 6 9. 9 10. 6 11. continue 12. 3 6 三、 判断题:本大题共10个小题,每小题1分,共10分。 1-5×√××√ 6-10××√×√
第8页,共29页
模拟题三
一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的。
1.C语言源程序的基本单位是 。(易) (A)过程 (B)函数 (C)子程序 (D)标识符
2. 是合法的用户自定义标识符。(易)
(A)b-b (B)float (C) (D)_isw 3.以下程序的输出结果是 (中)# include void main() {int i=010,j=10;
printf(\"%d,%d\\n\}
(A)11,10 (B)9,10 (C)9,9 (D)10,9
4.设变量定义为“int a, b;”,执行下列语句时,输入 ,则a和b的值都是10。 scanf(\"a=%d, b=%d\;(易)
(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=10 5.若变量已正确定义,有以下程序段(中)
int a=3,b=5,c=7; if(a>b)a=b;c=a; if(c!=a)c=b;
printf(\"%d,%d,%d\\n\其输出结果是 。
(A)程序段有语法错 (B)3,5,3 (C)3,5,5 (D)3,5,7 6.有以下程序(难) # include void main() { int i;for (i=0; i<3; i++) switch (i)
{ case 1: printf(\"%d \
case 2: printf(\"%d \ default : printf(\"%d \ } }
执行后输出结果是
(A)011122 (B)012 (C)012020 (D)120 7.若k为整型,则while循环执行 次(中) k=3; while(k==0) printf(“%d”,k); k--; printf(“\\n”); (A) 1 (B) 3 (C) 2 (D)0
8.有以下程序(难) #include void main() { int i, j;for(i=3; i>=1; i--)
第9页,共29页
{ for(j=1; j<=2; j++) printf(\"%d\printf(\"\\n\"); }
}
程序的运行结果是
(A)2 3 4 (B)4 3 2 (C)2 3 (D)4 5
3 4 5 5 4 3 3 4 3 4
4 5 2 3 9.以下定义数组的语句中正确的是 (中) (A)int a(10); (B) char str[]; (C)int n=5; int a[4][n]; (D)# define SIZE 10
char str1[SIZE], str2[SIZE+2]; 10.对2个数组a和b进行如下初始化(中) A.char a[]=“abcd”; B.char b[]={„a‟, „b‟, „c‟, „d‟}; 则以下叙述正确的是
(A) a与b数组完全相同 (B)数组a比数组b长度大 (C)a与b中存放的都是字符串 (D)a与b长度相同
11.以下程序的输出结果是 (难)
(A) 0 (B)29 (C)31 (D)无定值 fun(int x, int y, int a) { a=x*x+y*y; } main( ) {
int a=31; fun(5,2,a); printf(\"%d\ } 12.下列说法不正确的是 (中) (A)不同函数中,可以使用相同名字的变量 (B)形式参数是局部变量
(C)主函数main中定义的变量在整个文件或程序中有效
(D)在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 13.若已定义char s[10]; 则在下面表达式中不表示s[1]的地址的是 (中) (A)s+1 (B)s++ (C)&s[0]+1 (D)&s[1] 14.已知int a[10]={0,1,2,3,4,5,6,7,,8,9},*p=a;不能表示数组a中元素的是 (中) (A)*p (B)a[6] (C) *a (D) p[a] 15.对于以下的变量定义,表达式 是不正确的。(中) struct node {
float x, y;
} point, *p=&point;
(A)p->x=2.0 (B)(*p).y=3.0 (C)point.x=2.0 (D)*p->y=3.0
二.填空题:本大题共15个小题,每小题2分,共30分。请将要填入的内容写在横线上。 1. C语言中结构化程序设计的三种结构是:顺序结构、 结构、循环结构。(易)
第10页,共29页
2.若整型变量m和n中的值分别为1和2,要求按以下格式输出m 和n 的值:(中) m=1,n=2
请完成输出语句:printf (\"____________ \
3.若a是int型变量,则下面表达式(a=4*5,a*2),a+6的值为 。(中) 4.当x=2,y=3,z=1时,执行以下程序段后,输出结果是 。(中) if(x>y) if(x>z)
printf(″%d\\n″,z); else
printf (″%d\\n″,y); printf(″end\\n″);
5.设i,n,p均为int型变量,则执行以下程序段后,p的值为 。(中) p=1;n=4;
for(i=1;i<=n;i++) p=p*i;
6.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。
(难)
int n=0,c; c=getchar();
while( ) {
if( )n++; c=getchar(); }
7.以下程序的输出结果是 。(中)
#include void main ( ){int a[3][3] ={1,2,3,4,5,6,7,8,9},i,s=0; for(i=0;i<=2;i++) s=s+a[i][i]; printf (“s=%d\\n”,s);} 8.下面程序段的运行结果是 。(中) char c[5]={„a‟, „b‟, „\\0‟, „c‟ , „\\0‟}; printf(“%s”,c);
9. 下面程序的输出结果是 。(难)
# include int f(int b[8] , int n) { int i , r ; r=1 ;for (i=0 ; i<=n ; i++) r=r*b[i] ; return (r) ;} void main( ) {
int x , a[ ]={2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ; x=f(a , 3) ;
第11页,共29页
printf(\"%d\" , x) ; }
10.以下程序的输出结果是 。(中) #define f(x) x*x #include void main() { int a=6, c; c=f(a); printf(“%d\\n”, c); } 11.以下定义数组的语句中正确的是 。(中) #include void main( ){ int i,a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)
printf(\"%d\}
12.下面程序段的运行结果是 (难)
void main( ) { int f(int x); int a=2 , i ;
for (i=0 ; i<3 ; i++) printf(\"%d\" , f(a)) ; printf(\"\\n\") ; }
int f(int x) {
int y=0 ; static z=3 ; y++ ; z++ ; return(x+y+z) ; }
13.以下函数的功能是,把两个指针变量所指的存储单元中的内容进行交换。(中) void exchange(int *p1, int *p2) { int t; t=*p2;
*p2 = ; *p1 = ; } 14.以下程序的输出结果是 。(中)
#include main(){ int a[]={1,2,3,4,5},*p; p=a;
printf(\"%d\\n\
第12页,共29页
}
15.下面程序段的运行结果是 。(中) char *p=\"abcde\"; p+=3;
printf(\"%s\
三.判断题:本大题共10个小题,每小题1分,共10分。将答案写在括号内。
1.若已定义int a=4,b=5;则a&&b的值为1。 (易) ( ) 2.在C程序中C 源程序中不能表示的数制是八进制。 (易) ( ) 3.用scanf(\"%7.2f\;输入时,整个数据占7位,小数部分占2位。(中)( ) 4.当if语句嵌套时,else总和前面与其具有相同缩进位置的if配对。(中) ( ) 5.break语句的作用是结束本次循环。 (易) ( ) 6.表达式strcmp(“box”, “boss”) 的值是一个正数。(中) ( ) 7.函数可以嵌套定义但不能嵌套调用。(易) ( ) 8.char *p=“good”;的含义是定义字符型指针变量p,p的值是字符串“good”。(中) ( )
9.有二维数组a[3][4],*(*(a+2)+3)代表数组元素a[2][3]的值。(难) ( ) 10.在定义一个结构体变量时,系统分配给它的存储空间是该结构体中所有成员所需存储空间的总和。 (易)
( ) 模拟题三参
一、 选择题:本大题共15个小题,每小题2分,共30分。 1.B 11.C 2.D 12.C 3.B 13.B 4.D 14.D 5.B 15.D 6.A 7.D 8.D 9.D 10.B 二、 填空题:本大题共15个小题,每小题2分,共30分 1. 选择
2. m=%d,n=%d 3. 26 4. end 5. 24
6. c!=‟\\n‟ c>=‟0‟&&c<=‟9‟ 7. s=15 8. ab 9. 120 10. 36 11. 3 5 7 12. 7
13. *p1 t 14. 2 15. de
三、 判断题:本大题共10个小题,每小题1分,共10分。
1-5√×××× 6-10√××√√
第13页,共29页
模拟题四
一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的。
1.下列选项中不属于结构化程序设计原则的是 。 (易) (A) 可封装 (B) 自顶向下 (C) 逐步细化 (D) 模块化设计 2.以下C语言用户自定义标识符中,合法的是 。(易) (A)int (B)a b (C)7y (D)_123 3.以下程序的输出结果是 。 (易)
# include void main() {int a=8,b=9,c,d; c=++a; d=b--;
printf(\"%d,%d,%d,%d \\n\}
(A)9,8,9,8 (B)9,8,9,9 (C)9 8 9 8 (D)9 8 9 9
4.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是 。(易) (中) (A)scanf(“%2d%2d%2d”,&i,&j,&k); (B)scanf(“%d %d %d”,&i,&j,&k); (C)scanf(“%d,%d,%d”,&i,&j,&k);
(D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
5.已知char ch=′d′;则表达式ch=(ch>=′a′ && ch<=′z′)?(ch-32):ch;的值是 。(易)
(A) a (B) d (C) A (D) D 6.有以下程序 #include main( ) { char ch;ch=getchar( ); switch(ch)
{ case „A‟ : printf(“%c”,‟A‟);
case „B‟ : printf(“%c”,‟B‟); break; default: printf(“%s\\n”,”other”); } }
当从键盘输入字母A时,运行结果为: 。(中) (A) AB (B) A (C)B (D) other
7.执行语句for(i=1;10;++i); 其中表达式i=1将被执行_________次.(易) (A)0 (B)1 (C)无穷次 (D)不确定 8.执行语句for(i=1;i++<4; );后变量i的值是______. (A)3 (B)4 (C)5 (D)不定 9.下面程序段的运行结果是_________.
char a[7]=\"abcdef\"; char b[4]=\"ABC\"; strcpy(a,b);
第14页,共29页
printf(\"%c\
(A)空格 (B)\\0 (C)e (D)f 10.若有以下程序: void main()
{ int m[ ][3]={1,3,2,4,5,7,6,8,9,10,11}; int i,k=2;
for(i=0;i<3;i++)
printf(“%d”,m[k][i]); }
程序执行后的输出结果是: 。(中)
a) 4 5 7 b) 2 7 9 c) 9 10 11 d) 6 8 9 11.有以下程序:
void fun(int a,int b,int c) {a=456,b=567,c=678;} main() { int x=10,y=20,z=30; fun(x,y,z);
printf(\"%d,%d,%d\n\); }
输出结果是 。(中)
A)30,20,10 B)10,20,30 C)456,567,678 D)678,567,456 12.以下叙述中正确的是 。 (易)
(A) 构成C程序的基本单位是函数 (B) 可以在一个函数中定义另一个函数 (C) 函数不能嵌套调用
(D) 被调函数的定义位置一定要在主调函数之前
13.已知int a[]={1,2,3,4,5,6,7,8,9,0},*p=a;则printf(“%d”,*p+9);的运行结果为 。(难)
(A)0 (B)1 (C)10 (D)9
14.若有定义:int a[5],*p=a;则对a数组元素地址的正确引用是 。 (易)
(A)p+5 (B)*a+1 (C)&a+1 (D)&a[0] 15.定义共用体的关键字是_______________ 。(易)
(A) union (B) enum (C)struct (D)typedef
二.判断题:本大题共15个小题,每小题1分,共15分。将答案写在括号内。
1.C程序总是从main函数开始执行,无论main函数的位置如何。 (易) ( ) 2. 当if语句嵌套时,else总是与它前面最近的一个未匹配的if相匹配,不受缩进格式影响。 (中) ( ) 3.在循环过程中,使用break语句和continue语句的作用是一样的。 (易) ( ) 4.表达式1/8的值是0。 (易) ( ) 5.C语言编绎系统以0代表“假”,以1代表“真”。 (易) ( ) 6.已知char *array=\"china\"; 则array的值是字符串\"china\"。 (中) ( ) 7.函数中的形参和调用时的实参都是数组名时,传递方式为地址传递。 (中) ( ) 8.当判断两个字符串s1和s2是否相等,可以使用用:if (s1= =s2) 。 (中) ( ) 9.假设有int a[10], *p;则P=&a[0]与p=a相等。 (易) ( ) 10. 共用体变量所占的内存长度等于最长的成员的长度 (中) ( ) 三、填空题:本大题共15个小题,每小题2分,共30分。请将要填入的内容写在横线上。 1.C语言中运算对象必需是整型的运算符是 (易)
2.设n=10,i=4,则赋值表达式n=n%i+1执行后的n值是 。(易)
第15页,共29页
3.当10≤x≤100时,y值为50,用C语言描述为if( ) y=50; (易) 4. 输入两个实数,按代数值由大到小的次序输出这两个数。(中)
void main() { float m,n,t;
scanf(“%f,%f”,&m,&n); if (m{t=m; ; ; } printf(“%5.2f,%5.2f”,m,n);}
5.当a=3,b=4,c=5时,执行以下程序段后,输出结果是 。(中) if(a>b) if(a>c)
printf(″%d\\n″,a); else
printf (″%d\\n″,b); printf(″OK\\n″); 6.有以下程序段 s=1.0 for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(“%f\\n”,s);
请填空,使以下程序段的功能与上面的程序段完全相同。(中)
s=1.0,k=1;
while( )
{ s=s+1.0/(k*(k+1)); ; } printf(“%f\\n”,s);
7.以下程序运行后的输出结果是 。(中) #include void main(){ int i,sum=0;
for(i=1;i<9;i+=2) sum+=1;
printf(“%d\\n”,sum); }
8.若有定义语句:char s[10]=\"abcd\\n\\0\";,则strlen(s)的值是 。(中) 9. 以下程序的输出结果是 。 (中) #include void main(){ int a[5]={ 1,3,5,7,9},*p; p=a;p++;
printf(\"%d\
10.以下程序的输出结果是 。(难) #define f(x) x*x main() {
int a=8, b=4, c;
第16页,共29页
c=f(a)/f(b);
printf(“%d\\n”, c); }
11.以下函数的功能是计算xn,主函数中已定义a,b,m变量并赋值,通过调用函数fun( )计算表达式m=a4+b4的语句为 。(中) double fun(double x,int n) { int i; double y=1;
for(i=1,i<=n;i++)y=y*x; return y }
12.下面程序的运行结果是 。(难)
#include f(int a){ static int b=0; b=b+1; return(a+b); }
main( ) { int a=2,i; for(i=0;i<3;i++) printf(“ %d”,f(a)); }
13.已知int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4],; p=a;通过指针输出数组元素a[2][3]的方法为printf(\"a[2][3]=%d\\n\ ); (难)
14.以下程序运行后的输出结果是 。(难)
void main()
{char s[]=\"l59\",*p; p=s;
printf(\"%c\",*p++); printf(\"%c\",*p++); }
15.以下程序是建立一个名为myfile.txxt的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。(难)
#include main() { FILE *fp; char c;fp= ; do{ c=getchar(); fputc(c,fp); }while(c!='\\n'); ; }
模拟题四答案
第17页,共29页
四、 选择题:本大题共15个小题,每小题2分,共30分。 1.A 11.B 2.D 12.A 3.B 13.C 4.C 14.D 5.D 15.A 6.A 7.B 8.C 9.D 10.D 五、 判断题:本大题共10个小题,每小题1分,共10分。 1-5√√×√√ 6-10×√×√√
六、 填空题:本大题共15个小题,每小题2分,共30分
1. % 2. 3
3. x>=10&&x<=100 4. m=n n=t 5. OK
6. k<=n k++(或k=k+1) 7. 4 8. 5 9. 3 10.
11. m=fun(a,4)+fun(b,4) 12. 3 4 5
13. *(*(p+2)+3) 14. 15
15. fopen(\"myfile.txt\ fclose(fp);
模拟题五
一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的,将正确选项前的字母写在相应横线上。
1.以下叙述中错误的是 (易)
(A)C语言中的符号常量必须使用大写 (B)C语言中的所有关键字都必须是小写
(C)C程序的执行总是从主函数开始,并在主函数中结束 (D)C语言是一种结构化程序设计语言
2.在C语言中,数字078是 (易)
(A) 十进制数 (B)八进制数 (C)十六进制数 (D) 非法数 3.C语言中字符型数据在内存中的存储形式是 (易)
(A)原码 (B)补码 (C)反码 (D)ASCII码 4.执行printf(“%x”,100) ;后的输出结果是 (中)
(A)100 (B)0x100 (C)0X (D) 5.有以下程序: #include main( ) { int a,b;int x ; a=10 ;
第18页,共29页
b=4;
x=3.2+a/b;
printf(“%d”, x) ; }
程序运行后的输出结果是 (中)
(A)5.2 (B)5 (C)5.7 (D)6 6.以下程序,运行后的输出结果是 (易) #include main( ){ int x=1, a=0, b=0;
switch(x) {
case 0: b++; case 1: a++; case 2: a++; b++; }
printf(“a=%d, b=%d \\n”, a, b) ; }
(A)a=2, b=1 (B)a=1, b=1 (C)a=1, b=0 (D)a=2, b=2 7.有以下程序,运行后的输出结果是 (易) #include main( ) { int n=10;while( n>7 ) {
n- -;
printf(“%d\\n”,n); } }
( A ) 10 (B)9 (C)10 (D)9 9 8 9 8 8 7 8 7 7 6
8.在一个C源程序文件中所定义的全局变量,其作用域为 (易)
(A)由具体定义位置和extern说明来决定范围 (B)所在程序的全部范围 (C)所在函数的全部范围 (D)所在文件的全部范围 9.若有如下程序:
#include #define s(x, y) x*(y) void main( ) { int a,b,area; a=2,b=3;第19页,共29页
area=s(a+2,b+2); printf(“%d”,area); }
程序运行后的输出结果是 (中)
(A)12 (B)20 (C)10 (D)14
10.以下不能正确进行字符串赋值的语句组是 (中)
(A)char s[5]={„a‟,‟e‟,‟i‟,‟o‟,‟u‟}; (B)char *s; s=”good”; (C)char s[ 5]=”good”; (D)char s[5]; s=”good”;
11.若有说明“int a[3][4]={0};”,则下面叙述正确的是 (易) (A)只有a[0][0]可得到初值 (B)此说明语句不正确
(C)数组a中各元素都可得到初值,但其值不一定为0 (D)数组a中每个元素均可得到初值0
12.以下程序的输出结果是 (难) #includeint fun( int a, int b, int c ) { c=a*b; } main( ) { int c ;
fun( 2, 3, c );
printf( ”%d\\n”, c ); }
(A) 0 (B)1 (C)6 (D)无定值 13.若已有定义:int a[5]={10, 20, 30, 40, 50}, *p=&a[1];
则执行语句*p++; 后,*p的值是 (难)
(A)20 (B)30 (C)21 (D)31
14.当定义一个结构体变量时,系统分配给它的内存是 (易)
(A)各成员所需内存总和
(B)成员中占内存容量最大者所需的容量 (C)结构体中第一个成员所需内存量 (D)结构体中最后一个成员所需内存量
15.对于C语言函数,下列叙述正确的是 (易)
(A)函数的定义不能嵌套,但函数调用可以嵌套 (B)函数的定义可以嵌套,但函数调用不能嵌套 (C)函数的定义和调用都不能嵌套 (D)函数的定义和调用都能嵌套
二.填空题:请将正确答案填写在相应横线上。本大题共15个空,每空2分,共30分。 1.以下程序的功能是:输入一个英文字符,判断它是否为大写字母,如果是,将它转换为小写字母输出,否则,直接输出。请将程序补充完整。(中) #include main() {第20页,共29页
char ch;
scanf(“%c”, &ch);
ch=(ch>=‟A‟&&ch<=‟Z‟) ? ___________________: ch ;
printf(“%c”, ch); }
2.以下函数fmax返回数组arr中最大元素的下标,数组中元素的个数由x传入,请将程序补充完整。(中) fmax(int arr[], int x) {
int max, q;
for(q=1,max=0;qif(arr[q]>arr[max]) _____________________; return max; }3.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为__________。(易)
4.下列给定程序中,函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据为:1,2,3,4,5,6,7,8,9,则逆置后依次为9,8,7,6,5,4,3,2,1。形参n给出数组中数据的个数。请将程序补充完整。(中) # include void fun(int a[ ], int n) {int i , t;
for(i=0; i<_______________; i++) {
t=a[i];
a[i]=a[n-1-______]; ___________=t; } } main( )
{ int b[9]={1, 2, 3, 4, 5, 6, 7, 8, 9}, i; fun(b, 9);
printf(“The data after inverting: \\n”); for(i=0; i<9; i++)
printf(“%4d”, b[i] ); printf(“\\n”); }
5.执行语句“ for(s=0, i=1 ; i<=10 ; i=i+3) s+=i; ”后,变量 s 、i 的当前值是 ____________________、____________________。(中) 6.求s=1+2+3+...+100 (易) main( ) {int i,s=0; i=1; do
第21页,共29页
{ s=s+i; i++; }
while(_______________); prntf(\"%d\ }
7.下面程序的输出结果是____________________(难) #include int f ( ){ static int i=0; int s=1; s+=i; i++;
return s; } void main( ) { int i,a=0;
for(i=0;i<5;i++) a+=f( ); printf(“%d”,a);} 8.设有如下定义:
char str[]=”Beijing”;
则执行下列语句后的输出结果为____________。(中) printf (“%d”,strlen(strcpy(str, “Hello”))); 9.有以下程序段:
int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], b; b=p[5];
则b中的值是_____________。(难)
10.有一个switch语句描述的多分支结构程序如下:
#include void main( ) {int x,y;scanf (“%d” ,&x); switch(x) {
case 0: y=1; case 1: y=10; case 2: y=100; case 3: y=1000; default: y=-1; }
printf(“y=%d”,y); }
当输入0时,程序运行结果是__________;当输入2时,程序运行结果是_________。(中)
第22页,共29页
11.已知“int a,b;”,执行语句“a=(b=2*3,b*5),b+6”后,变量a的值是__________。(中)
三.判断题:本大题共10个小题,每小题1分,共10分。 1.在循环结构中continue语句是结束整个循环,break语句是结束本次循环。( )(易) 2.在C程序中无论是整数还是实数,都能准确无误的表示。( )(中) 3.赋值表达式的左边必须是变量。( )(易) 4.C程序中每一行只能写一条语句。( )(易) 5.可以用语句“int n=5; int a[4][n];”定义数组a。( )(中)
6.C源程序中能表示的数制有:十六进制、八进制、十进制、二进制。( )(中) 7.在不同函数中,可以使用相同名字的变量。( )(易) 8.可以给指针变量赋一个整数作为地址值。( )(易) 9.逻辑运算符两侧的运算对象可以是任意合法的表达式。( )(中) 10.若有定义语句:double a, *p=&a; 则定义语句中的*是一个间址运算符。( )(易)
模拟题五答案
一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的,将正确选项前的字母写在相应横线上。
1.A 2.D 3.D 4.D 5.B 6.A 7.B 8.A 9.A 10.D 11.D 12.D 13.B 14.A 15.A
二.填空题:请将正确答案填写在相应横线上。本大题共15个空,每空2分,共30分。
1.ch+32 2.max=q 3.auto
4.n/2 i a[n-1-i] 5.22 13 6.i<=100 7.15 8.5 9.9
10.y= -1 y= -1 11.30
三.判断题:本大题共10个小题,每小题1分,共10分。
1-5 ××√×× 6-10 ×√×√×
第23页,共29页
模拟题六
一、选择题:本大题共15题,每题2分,共30分。在每小题给出的四个选项中,只有一项是正确的,将题号及所选项前的字母写在答题纸上。
1.______是合法的用户自定义标识符。
(A)b-b (B)float (C)&fr> (D)_isw 2.有以下程序 #include void main() { int i=10,j=1;printf(\"%d,%d\\n\ }
执行后输出的结果是 。
(A)9,2 (B) 10,2 (C) 9,1 (D)10,1
3. 设变量定义为“int a, b;”,执行下列语句时,输入_____,则a和b的值都是10。 scanf(\"a=%d, b=%d\;
(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=10 4.有以下程序段 int a, b, c;
a=10; b=50; c=30; if (a>b) a=b;b=c; c=a;
printf(\"a=%d b=%d c=%d\\n”, a, b, c); 程序的输出结果是 。
(A)a=10 b=50 c=10 (B)a=10 b=50 c=30 (C)a=10 b=30 c=10 (D)a=50 b=30 c=50
5.以下不构成无限循环的语句或语句组是 。 (A)n=0; do{ ++n; } while(n<=0);
(B)n=0; while(1){ n++; } (C)n=10; while(n);{ n--; } (D)for(n=0,i=1; ; i++) n+=i; } 6.有以下程序 #include void main() {int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) {
case 0: a++;break; case 1: b++;break; }
第24页,共29页
case 2: a++;b++;break; case 3: a++;b++;
}
printf(\"a=%d,b=%d\\n\}
程序的运行结果是 。
(A)a=1, b=0 (B)a=2, b=2 (C)a=1, b=1 (D)a=2, b=1 7.数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素 的值为6。 (A)a[3][2] (B)a[2][1] (C)a[1][2] (D)a[2][3] 8.以下能正确定义数组并正确赋初值的语句是 。
(A) int N=5,b[N][N]; (B) int a[1][2]={{1},{3}}; (C)int c[2][]={{1,2},{3,4}}; (D) int d[3][2]={{1,2},{34}}; 9.若有定义语句:char s[10]=\"1234567\\0\\0\";,则strlen(s)的值是 。 (A)7 (B)8 (C)9 (D)10 10.下列程序的输出结果是 。 #include fun(int a, int b, int c) { c =a*b; } void main( ) { int c;fun(2,3,c);
printf(”%d\\n”,c); }
(A)0 (B)1 (C)6 (D)无法确定 11.设变量定义为“int a[4];”,则表达式______不符合C语言语法。 (A)*a (B)a[0] (C)a (D)a++ 12.设变量定义为“int x, *p=&x;”,则&*p相当于 。
(A)p (B)*p (C)x (D)*&x 13.以下叙述中错误的是 。 (A)可以通过typedef增加新的类型
(B)可以用typedef将已经存在的类型用一个新的名字来代表 (C)用typedef定义新的类型名后,原有类型名仍有效
(D)用typedef可以为各种类型起别名,但不能为变量起别名 14.设有如下程序段 char s[20]=\" Beijing\p=s;
则执行p=s;语句后,以下叙述正确的是 。 (A)可以用*p 表示s[0]
(B)s 数组中元素的个数和p 所指字符串长度相等 (C)s 和p 都是指针变量
(D)数组s 中的内容和指针变量p 中的内容相同 15.有以下说明和定义语句
struct student
{ int age; char name[20];};
struct student stu[2]={{20,\"Li Hong\struct student *p; p=stu;
以下选项中引用结构体变量成员的表达式错误的是
第25页,共29页
(A)(p++)->name (B)stu[2].age (C)(*p).name (D)p->name
二.判断题:本大题共10个小题,每小题1分,共10分。
1. printf(“\\n”);实现在输出时进行换行。 ( ) 2.若已定义int a=2,b=3;则a&&b的值为1。 ( ) 3. \"a\"是正确的字符常量。 ( ) 4. c语言程序经过编译、链接之后才能形成一个真正可执行的二进制机器指令文件。( ) 5.已定义int n=6;则具有6个元素的一维数组可定义为float a[n];。 ( ) 6.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失。( ) 7.当if语句嵌套时,else总和前面与其具有相同缩进位置的if配对。 ( ) 8. C程序总是从main函数开始执行,无论main函数的位置如何。 ( ) 9.数组定义为 int a[11][11],则数组a有22个数组元素。 ( ) 10.结构体类型只有一种。 ( )
三.填空题:本大题共15个小题,每空2分,共30分。
1.设x的值为10,n的值为5,则表达式x%=(n-=3)运算后,x的值为 。 2.C语言中优先级最低的运算符是 运算符。 3.表示“x≥y≥z”的C表达式是 。
4.若整型变量a 和b 中的值分别为7和9,要求按以下格式输出a 和b 的值: a=7,b=9
请完成输出语句:printf (\" \。
5.当a=2,b=3,c=1时,执行以下程序段后,输出结果是 。 if(a>b) if(a>c)
printf(″%d\\n″,a); else
printf (″%d\\n″,b); printf(″end\\n″);
6.C语言程序由main( )函数开始执行,应在 函数中结束。 7.设i,n,p均为int型变量,则执行以下程序段后,p的值为 。 p=1;n=4;
for(i=1;i<=n;i++) p=p*i;
8.以下程序的输出结果是 。 #include void main() { int i,j,sum;for(i=3;i>=1;i--) { sum=0;
for(j=1;j<=i;j++) sum+=i*j; }
printf(\"%d\\n\}
9.以下程序运行后的输出结果是 。 #include 第26页,共29页
void main()
{ int a=1,b=7;
do{ b=b/2;
a+=b;
}while (b>1); printf(\"%d\\n\ }
10.以下程序的输出结果是 。
#include void main ( ){int a[3][3] ={1,2,3,4,5,6,7,8,9},i,s=0; for(i=0;i<=2;i++) s=s+a[i][i]; printf (“s=%d\\n”,s);}
11.下列程序段的输出结果是 , 。
int k=1, j=2, *p=&k, *q=p; p=&j;
printf(\"%d, %d\12.下列程序的输出结果是 , 。
#include void p(int *x,int *y) { int *p;p=x; x=y; y=p; }
void main() { int x=0, y=3; p(&y, &x);
printf(\"%d, %d\}
13.以下程序的输出结果是 。
#include void main() {int a[5]={2,4,6,8,10},*p; p=a;p++;
printf(\"%d\}
14. 设有如下的程序段:
char str[ ]=\"Hello\" ; char *ptr ; ptr=str ; 执行完上面的程序段后,*(ptr+5)的值为_____。
15. 若有定义:int k; ,以下程序段的输出结果是 。 for(k=2;k<6;k++,k++) printf(\"##%d\
模拟题六答案
第27页,共29页
一.选择题:本大题共15个小题,每小题2分,共30分。 1.(D)2. (B)3. (D)4. (C)5. (A)6. (D)7. (B) 8.(D)9. (A)10. (D)11. (D) 12.(A)13. (A) 14. (A)15. (B)
二.判断题:本大题共10个小题,每小题1分,共10分。 1.2. 3. 4. 5. 6. 7. 8.9. 10. 三.填空题:本大题共15题,每题2分,共30分。 1. 0 2. 逗号
3. x>=y&&y>=z 4. a=%d,b=%d 5. end
6. main( )/主 7. 24 8. 1 9. 5 10. s=15 11. 2,1 12. 0,3 13. 4 14. 0或‟\\0‟ 15. ##2##4
2014年编程题(不出原题仅供学习参考)
1111+2!+3!+4!5!,并输出结果。1. 编程计算1!(循环) 468102. 编写程序打印以下图案 :(循环嵌套)
*
***
***** *******
3. 将输入的20个整数保存到数组中,并求出其中的最大值、最小值。(数组) 4. 输入n个数据,对其进行排序。(数组)
5. 编程求i!1!2!3!......10!的值,要求:编写函数f实现求阶乘的功能,
i110并在main函数中调用函数f。(函数、值传递)
6. 编写函数fun实现将整型数组a[10]中的元素逆序存放,逆序存放的方法是:将第一个数与最后一个数交换,第二个数与倒数第二个数交换,以此类推。 要求:在主函数中,从键盘输入所有数组元素,调用fun函数实现对数组进行逆序存放,并输出处理后的数组。(函数、地址传递)
第28页,共29页
7.课本P1 例题8.1 。(指针)
8.编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。 例如,若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。 注意:部分源程序给出如下,仅在函数fun的花括号中填入你编写的若干语句。(指针做形参进行地址传递) #includefloat fun( float * a, int n ) { }
void main( )
{ float score[30]={ 90.5, 72, 80, 61.5, 55}, aver; aver=fun( score, 5 );
printf(“The average score is:%5.2f \\n”, aver ); }
第29页,共29页