1 下面程序输出的结果是
- 格式:doc
- 大小:27.50 KB
- 文档页数:2
C语言模拟试卷(1)难度指数:★★★一、单选1、以下叙述不正确的是()A、分号是C语言的重要组成部分B、C语言的注释可以写在语句的后面C、函数是C语言的基本组成单位D、主函数的名字不一定非用main来表示2、若有定义:char s[]={“Girl”};执行下面语句后输出的结果为()s[0]=s[2];s[2]=s[0];s[1]=s[4];s[4]=s[1];printf(“%c,%s”,s[0],s);A、r,GirlB、r,rC、r,lirGD、r,Gril3、下列与语句while(1){if(i>100)break;s+=i;i++;}功能相同的是()A、for(;i<100;i++)s=s+i;B、for(;i<100;i++,s=s+i);C、for(;i<=100;i++)s+=i;D、for(;i>=100;i++,s=s+i);4、下面语句输出正确的是()main(){int a=025;printf(“%d,%o,%x”,a,a,a);}A、21,025,0x15B、21,25,15C、25,25,25D、21,25,f5、从键盘上输入8,则运行的结果为()main(){int a;scanf(“%d”,&a);if(a++>8)printf(“%d,”,a++);else printf(“%d,”,a--);printf(“%d”,a);}A、8,8B、9,9C、9,8D、8,96、下面合法的语句为()A、a=1,b=2B、++a;C、a=a+1=s;D、y=int(a);7、下面标识符不合法的是()A、includeB、CaseC、sumD、_12/38、以下不能对二维数组初始化的是()A、int a[4][2]={0};B、char a[][3]={“abc”,“def”};C、int a[][3]={1,2,3,4,5};D、char a[3][4]={’a’,’b’,’c’};9、下面程序输出的结果是()main(){char ch[]=“abc\01d5\678x\xay\0\””;printf(“%d”,strlen(ch));}A、3B、11C、12D、1010、设有两个字符数组a,b,下面正确的输入语句是()A、gets(a,b);B、scanf(“%s%s”,a,b);C、scanf(“%s%s”,&a,&b);D、gets(“a”),gets(“b”);11、TC环境下下面程序的输出结果为()main(){int a=0;While(a>=0)a++;printf(“%d”,a);}A、程序为死循环B、-32768C、32768D、012、已知ch被定义为字符变量,以下语句正确的是()A、ch=“\”;B、ch=‘\108’;C、ch=65;D、ch=“A”;13、执行下面语句后,a、b、c的值分别为()int a,b,c;a=b=c=0;a++||b++&&++c;A、1,1,0B、0,1,1C、1,0,1D、1,1,114、对于以下变量定义,正确的赋值是()int*p[3],arr[3];A、p=a;B、*p=arr[0];C、p=&arr[0];D、*p=arr;15、以下程序的运行结果为()#define N3#define Y(n)((N+1)*n)main(){int z;z=2*(N+Y(5+1));printf(“%d”,z);}A、出错B、42C、48D、5416、以下程序的运行结果为()void fun(int n){if(n)fun(n-1);printf(“%d”,n);}main(){fun(5);}A、12345B、54321C、012345D、54321017、指针变量p1,p2类型相同,且均已经被正确赋值,则下列哪个语句使p1,p2指向同一变量()A、p2=*&p1;B、p2=**p1;C、p2=&p1;D、p2=*p1;18、以下程序的输出结果是()void f(int x,int y){int z;z=x;x=y;y=z;}main(){int x=1,y=3,z=2;if(x>y)f(x,y);else if(y>z)f(y,z);else f(x,z);printf(“%d,%d,%d”,x,y,z);}A、1,2,3,B、3,1,2C、1,3,2D、2,3,119、设有以下语句,则下面赋值语句错误的是()struct S {int num;char name[20];float score;}stud[10],*p=stud;A、stud[1].num=10;B、S.stud.num=10;C、p->num=10;D、(*p).num=10;20、在下列语句中,其含义为“p 为带回一个指针的函数”的定义语句是()A、int *p();B、int **p;C、int (*p)();D、int *p;二、判断(((((((((((((((三、填空1、有如下定义:int (*p)[3];则p 是变量。
1.下面是一个加法程序,程序运行时等待拥护从键盘输入两整数,然后求出它们的和并输出之。
观察运行结果(程序输出),上机验证该程序。
#include <stdio.h>void main(){int a,b,c;printf(“Please input a,b;”);scanf(“%d,%d”,&a,&b);c=a+b;printf(“%d+%d=%d\n”,a,b,c);}2.下面的程序用来求三个数的平均值,上机验证该程序。
main(){float a,b,c,average;printf(“Please input a b c:”);scanf(“%f%f%f”,&a,&b,&c);average=(a+b+c)/3;printf(“The average value is :%f\n”,average);}练习题C语言基本语法知识一、选择题(1)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(3)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(4)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=kB)-k++C)k%int(f) D)k>=f>=m(5)有以下程序段int k=0,a=1,b=2,c=3; k=ac ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)0(6)以下选项中可作为C语言合法常量的是A)-80.B)-080C)-8e1.0D)-80.0e(7).以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(8)以下选项中,不能作为合法常量的是A)1.234e04 B)1.234e0.4C)1.234e+4 D)1.234e09)有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); 12 35 m=13 printf("%d%d\n",n++,++m); 35 14}程序运行后的输出结果是A)12353514 B)12353513C)12343514 D)12343513(10)有以下程序main(){int m=3,n=4,x;x=-m++; x= 3 m =4x=x+8/++n; x= 3+8/4= 5printf("%d\n",x);}程序运行后的输出结果是A) 3 B) 5 C) -1 D) -2(11)以下符合C语言语法的实型常量是A) 1.2E0.5B) 3.14.159EC) .5E-3D) E15(12) 若以下选项中的变量已正确定义,则正确的赋值语句是A) x1=26.8%3B) 1+2=x2C) x3=0x12D) x4=1+2=3;(13) 设有以下定义int a=0;double b=1.25;char c=‟A‟;#define d 2则下面语句中错误的是A) a++; B) b++ C) c++; D) d++;实验二整型、浮点型、字符型数据使用1.编程序,输出如下图形:*********************#include <stdio.h>int main(){int i;int j;for(i=1;i<=5;i++){for(j = 1;j<=i;j++){printf("*");}printf("\n");}}2.编写程序,实现下面的输出格式和结果:a= 5,b= 7,a-b=-2,a/b= 71%c1=COMPUTER,c2=COMP ,c3= COMPx=31.19,y= -31.2,z=31.1900s=3.11900e+001,t= -3.12e+001#include <stdio.h>int main(){int a = 5;int b = 7;printf("%d\n",a-b);printf("%2.0f%%\n",(float)a/b*100);char c1[] = "COMPUTER",c2[]="COMP",c3[]="COMP";printf("%s %s %s\n",c1,c2,c3);float x = 31.19,y=-31.2,z=31.1900;printf("%5.2f %4.1f %7.4f",x,y,z);}3.编写程序,输入变量x值,输出变量y的值,并分析输出结果。
算法经典精讲主讲教师:王春辉 北京数学特级教师引入从一道题谈起:下面程序输出的结果是______________.重难点突破题一:执行如图所示的程序框图,输出的s 值为( ).A .8B .16C .64D .128金题精讲题一:执行如图所示的程序框图,输出的s 值为( ). A .3- B .12-C .13D .2 1s =;for k =0:1:32^;s s k =*ends题二:阅读如图所示的程序框图,运行相应的程序,输出的结果i = .题三:阅读如图所示的程序框图,若输入的10k =,则该算法的功能是( ). A .计算数列{}12n -的前10项和 B .计算数列{}12n -的前9项和C .计算数列{}21n -的前10项和 D .计算数列{}21n -的前9项和题四:根据下列算法语句, 当输入x为60时, 输出y的值为( ).A.25 B.30 C.31 D.61题五:将两个数8,17a b==交换,使17,8a b==,下面语句正确一组是().题六:利用秦九韶算法求多项式121210n nn na x a x a x a x a--+++++的值,所作乘法的次数和加法的次数各是多少?引入题一:64重难点突破题一:CA.B.C.D.输入xIf x≤50 Theny=0.5 * xElsey=25+0.6*(x-50)End If输出y金题精讲题一:D 题二:5 题三:A题四:C 题五:B 题六:,n n。
第 1 页 共 7 页5. 有输入语句:scanf(“a=%d,b=%d,c=%d ”,&a,&b,&c);为使变量 a 的值为1,b 的值为2,c 的值为3,则正确的数据输入方式是( )。
(↙表示回车) (A )123↙ (B )1,2,3↙ (C )a=1 b=2 c=3↙ (D )a=1,b=2,c=3↙6.已知字母A 的ASCII 码值为十进制的65,下面程序的输出结果是( )。
#include<stdio.h> main(){ char ch1,ch2;ch1='A'+'5'-'3'; ch2='A'+'6'-'3';printf(“%d,%c\n”,ch1,ch2); }(A )67,D (B )B,C (C )C,D (D )不确定的值 7. 为表示关系x ≥y ≥z ,应使用C 语言表达式( )。
(A )(x>=y)&&(y>=z) (B )(x>=y)AND(y>=z) (C )(x>=y>=z) (D )(x>=y) & (y>=z)8. 设有数组定义:char array[]=“China ”;则数组array 所占的存储空间为( )。
(A )4个字节 (B )5个字节 (C )6个字节 (D )7个字节 9. 以下程序的输出结果是( )。
#include<stdio.h> main(){ int x=1,a=0,b=0; switch(x){ case 0:b++;case 1:a++;case 2:a++;b++;}printf(“%d,%d”,a,b);}(A)2,1 (B)1,1 (C)1,0 (D)2,210. 若k为整型变量,则下列while循环执行的次数为()。
1. 下述循环的循环次数是()int k=2;while(k=0)printf("%d",k);k--;printf("\n");A、无限次B、0次C、1次D、2次2. 在下列选项中,没有构成死循环的程序段是()A、int i=100;B、for(;;)while(1){i=i%100+1;if(i>100)break;}C、int k=1000;D、int s=36;do {++k;} while(k>=10000);while(s);--s;3. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是()int a[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a;A、*(a+i)B、a[p-a]C、p+iD、*(&a[i])4. 下面能正确将字符串"Boy"进行完整赋值操作的语句是()A、char s[3]={'B','o','y'};B、char s[ ]="Boy";C、char s[3]={"Boy"};D、char s[3];s[0]='B';s[1]='o';s[2]='y';5. 以下程序段的输出结果是()char arr[ ]="ABCD";char*ptr;for(ptr=arr;ptr<arr+4;ptr++)printf("%s\n",ptr);A、ABCDB、AC、DD、ABCDBCDCDD6. C语言的auto型变量是()A、存储在动态存储区中。
B、存储在静态存储区中。
C、存储在计算机CPU的寄存器中。
D、存储在外存储器中。
7. 测试文件是否结束函数的函数名是()A、feofB、EOFC、eofD、FEOF8. 下面程序段的输出结果是()int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a;printf(“%d\n”,*(*(p)+2));A、1B、5C、3D、79. C语言规定:在一个源程序中,main函数的位置是()A、必须在最开始B、必须在系统调用的函数的后面C、可以任意D、必须在最后10. 一个C程序的执行是从()A、本程序的main函数开始,到main函数结束B、本程序的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束11. 下面的四个选项中,均是不合法的用户标识符的选项是()A、AB、floatC、b-aD、_123P_0 la0 goto tempdo _A int INT12. 下面四个选项中,均是合法转义字符的选项是()A、’\’B、’\’C、’\018’D、’\\0’‘\\’‘\017’‘\f’‘\101’‘\n’‘\”’‘xab’‘x1f’13. sizeof(float)是()A、一个双精度型的表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式16. 若二维数组a有m列,则在a[i][j]前的元素个数为()A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+117. 对两个数组a和b进行如下初始化char a[ ]=”ABCDEF”;char b[ ]={‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是()A、a与b 数组完全相同B、a 与b 长度相同C、a 和b中都存放字符串D、a数组比b 数组长度长18. C语言中有关全局变量的说法,正确的是()A、在使用到它的所有文件中均需定义B、在函数体外定义一次C、在main函数中定义E、在main函数外定义19. 若有数组名作为函数调用时的实参,则传递给该函数形参的是()A、数组的首地址B、数组的第一个元素的值C、数组中全部元素的值D、数组元素的个数20. 下面程序段的输出结果是()int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A、3B、4C、6D、721. 不属于C语言程序基本结构的是( )A)顺序结构B)选择结构C)函数结构D)循环结构22. 若有定义及赋值:int a[6][6],*p;p=*a;则下列各式中能表示元素a[1][0]行地址的表达式是。
习题(第1-4章)一.选择题1.以下叙述正确的是()。
A.C语言的源程序不必通过编译就可以直接运行。
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C.C语言源程序经编译形成的二进制代码可以直接运行。
D.C语言中的函数不可以单独进行编译。
2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。
A.有0个或多个输入。
B.有0个或多个输出。
C.有穷性。
D.可行性。
3.以下叙述中正确的是()。
A.C语言比其它语言高级。
B.C语言可以不用编译就能被计算机识别执行。
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。
D.C语言出现的,具有其它语言的一切优点。
4.C语言中用于结构化程序设计的3种基本结构是()。
A.顺序结构、选择结构、循环结构B.if、switch、breakC.for、while、do-whileD.if、for、continue5.为解决某一特定问题而设计的指令序列称为()。
A.文档B. 语言C. 程序D. 系统6.用高级程序设计语言编写的程序称为()。
A.目标程序B. 可执行程序C. 源程序D. 伪代码7.能将高级语言编写的源程序转换成目标程序的是()。
A.编辑程序B. 编译程序C. 驱动程序D. 链接程序8.下列叙述中,正确一条是()。
A.计算机语言中,只有机器语言属于低级语言。
B.高级语言源程序可以被计算机直接执行。
C.C、C语言属于高级语言。
D.机器语言是所用机器无关的。
9.一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束10.以下叙述正确的是()。
A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误11.以下叙述不正确的是()。
程序分析填空训练题(1) 若有语句int i=-19,j=i%4;printf("%d\n",j);则输出的结果是【1】。
(2) 若有程序main(){ int i,j;scanf("i=%d,j=%d",&i,&j);printf("i=%d,j=%d\n ",i,j);}要求给i赋10,给j赋20,则应该从键盘输入【2】。
(3) 若有以下程序main(){ int p,a=5;if(p=a!=0)printf("%d\n",p);elseprintf("%d\n",p+2);}执行后输出结果是【3】。
(4) 若有以下程序main(){ int a=4,b=3,c=5,t=0;if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c;c=t;printf("%d %d %d\n",a,b,c);}执行后输出结果为【4】。
(5) 若有以下程序main(){ inta[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0;for(i=0;i<4;i++){ for(j=0;j<4;j++){ if(a[i][j]<0) continue;if(a[i][j]==0) break;s+=a[i][j];}}printf("%d\n",s);}执行后输出结果是【5】。
(6) 若有以下程序main(){ char a;a='H'-'A'+'0';printf("%c\n",a);}执行后输出结果是【6】。
(7) 若有以下程序int f(int x,int y){ return(y-x)*x; }main(){ int a=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf("%d\n",d);}执行后输出结果是【7】。
1、 下面程序输出的结果是
x=5
y=-20
IF x<0 THEN
x=y-3
ELSE
y=y+3
END IF
PRINT x-y, y-x
END
2、 下面程序的作用是求 100991.......651431211×++×+×+×的值,请补充完整
i=1
s=0
DO
s=s+______________
_____________________
LOOP UNTIL _______________
PRINR s
END
3、 读程序
甲: i=1 乙: i=1000
s=0 s=0
WHILE i<=1000 DO
s=s+i s=s+i
i=i+1 i=i-1
WEND LOOP UNTIL i<1
PRINT s PRINT s
END END
对甲乙判断正确的是
A 、 程序相同,结果不同 B、程序不同,结果相同
C、 程序相同,结果不同 D、程序相同,结果相同
4、 如果下面程序输出的结果是990,那么“条件”处应填
i=11
s=1
DO
s=s*i
i=i-1
LOOP UNTIL “条件”
PRINT s
END
5、程序输出的结果S= i=
i=1
WHILE i<8
s=2i+3
i=i+2
WEND
PRINT s
END
6、将两个数a=8 , b=17 交换,使a=17, b=8. 下面语句正确的一组是
A、 a=b B、 c=b C、 b=a D、a=c
b=a b=a a=b c=b
a=c b=a
7、下面两个程序最后输出的S分别等于
i=1 i=1
WHILE i<8 WHILE i<8
i=i+2 s=2×i+3
s=2×i+3 i=i+2
WEND WEND
PRINT s PRINT s
END END
A、都是17 B、都是21 C、21, 17 D、 14, 21
8、下面程序的算法功能是
INPUT x
IF x<3 THEN
y=2x
ELSE
IF x>3 THEN
y=x^2-1
ELSE
y=2
END IF
END IF
PRINT y
END
9、程序运行的结果是
j=1
WHILE j×j<100
j=j+1
WEND
j=j-1
PRINT “j=”; j
END