c语言模拟一
- 格式:doc
- 大小:91.00 KB
- 文档页数:17
《C语言程序设计》模拟题1一、选择题:1.一个C语言的源程序中__A____。
A)必须有一个主函数 B)可以有多个主函数C)必须有主函数和其他函数 D)可以没有主函数2.执行以下语句的结果为__C_ __。
y=10; x=y++;A)x=10, y=10 B)x=11, y=11C)x=10, y=11 D)x=11, y=103.执行以下程序段后,c3的值是__A____。
int c1=1,c2=2,c3;c3=c1/c2;A) 0 B) 1/2 C) 0.5 D) 14.C语言中字符型(char)数据在内存中的形式存储是__D ___。
A) 原码 B) 补码 C)反码 D) ASCII码5.下列常数中不能作为C的常量的是__ D____。
A) 0xA5 B) 2.5e-2 C) 3e2 D) 2e32.66.C语言中整数-8在内存中的存储形式是__B ____。
A) 1111 1111 1111 1000 B) 1000 0000 0000 1000C) 0000 0000 0000 1000 D) 1111 1111 1111 01117.已知 int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是_B ____。
A)6 B)12 C)30 D)368.已知函数abc的定义为:void abc ( ){ ....... }则函数定义中void的含义是_ A___。
A)执行函数abc后,函数没有返回值B)执行函数abc后,函数不再返回C)执行函数abc后,可以返回任意类型D)以上三个答案全是错误的9.以下程序的输出结果是_C ___。
main(){ int i,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) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9, 10.已知:double *p[6];它的含义是__C __。
c语言程序设计模拟试题C语言程序设计模拟试题一、选择题(每题2分,共20分)1. C语言中,以下哪个不是合法的变量名?- A. 2variable- B. Variable2- C. variable_2- D. Variable2. 在C语言中,以下哪个选项是正确的字符串字面量? - A. "Hello, World"- B. 'Hello, World'- C. "Hello World"- D. {"Hello", "World"}3. 以下哪个不是C语言中的基本数据类型?- A. int- B. char- C. float- D. string4. 在C语言中,以下哪个不是运算符?- A. +- B. -- C. *- D. to5. 以下哪个语句是正确的C语言循环语句?- A. do { ... } while;- B. while { ... }- C. for { ... }- D. switch { ... }6. 以下哪个函数是C语言标准库中用于字符到整数的转换? - A. atoi()- B. itoa()- C. atof()- D. strtol()7. 在C语言中,以下哪个不是控制语句?- A. if- B. switch- C. continue- D. return8. 在C语言中,以下哪个是正确的函数声明?- A. int function_name();- B. function_name int;- C. int function_name = 0;- D. int function_name = function();9. 在C语言中,以下哪个是正确的数组声明?- A. int array[10];- B. int [10] array;- C. int array = 10;- D. int array[10] = {0};10. 在C语言中,以下哪个是正确的结构体声明?- A. struct Student { int age; char name[50]; };- B. struct { int age; char name[50]; } Student;- C. Student struct { int age; char name[50]; };- D. struct Student int age; char name[50];二、填空题(每空2分,共20分)1. 在C语言中,一个变量的声明必须在______。
单选题:1、下列程序执行后输出的结果是#include 〈stdio.h〉f(int a){ int b=0;int c=3;a=c++, b++; //先计算a,再取b值,但没使用。
如果a=(c++, b++),结果?;return(a);}main( ){ int a=2,i,k;for(i=0;i〈2;i+ +)k=f(a+ +); //i=0,a=2;i=1,a=3(但没有改变被调函数的使用) printf("%d\n",k);}A.3B.0C.1D.4答案:A2、假定a和b为int型变量,则执行以下语句后b的值为main(){ a=1; b=10;do{b=b-a; a++;} /* ①10-1=9,a=2;②8-2=6,a=3;③5-3=2、a=4 ④1-4=-3 */ while (b-- > 0); /* ①9-1=8;②6-1=5;③2-1=1;④ -3-1=-4 */}A.-3B.-2C.-1D.-4答案:D3、下面的表达式中_______满足:当x为偶数时值为“真”,为奇数时值为“假”A.x%2==0 /* 如4%2==0 (1) 5%2==0 (0)B.!x%2!=0 /* 如!4%2!=0 (0) !5%2!=0 (0)(优先级:!-> %-> !=)C.2*x/2-x==0D.!(x%2)答案:B ?4、设 int b=2;表达式b/(b*2)的值是_______.A.0B.0.5C.0.500000D.0.00000答案:A5、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16x的值为_____.A.4B.16C.32D.52答案:C6、若有以下定义和语句:int u=010,v=0x10,w=10;printf(″%d,%d,%d\n″,u,v,w);则输出结果是:A.8,16,10B.10,10,10C.8,8,10D.8,10,10答案:A7、若有以下说明和语名:int a=5a++;此处表达式a++的值是____A.7B.6C.5D.4答案:C8、若执行下面的程序从键盘输入3和4,则输出是_______main(){ int a,b,s;scanf("%d%d",&a,&b);s=a;if (a < b) s=b;s=s*s;printf("%d\n",s);}A.14B.16C.18D.20答案:B9、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为________。
C语言测试题一、单项选择题(共30分,每题1分)1. 下列不正确的转义字符是A.\\B.\‘C.074D.\02. 不是C语言提供的合法关键字是A.switchB.cherC.caseD.default3.正确的标识符是()A.?a B.a=2 C.a.3 D.a_34.下列字符中属于键盘符号的是A.\B.\nC.\tD.\b.下列数据中属于“字符串常量”的A.ABCB.“ABC”C.‘ABC’D.‘A’6.c har型常量在内存中存放的是A.ASCII码B.BCD码C.内码值D.十进制代码值7.设a为5,执行下列语句后,b的值不为2的是()A.b=a/2B.b=6-(——a) C.b=a%2 D.b=a>3?2:28.在以下一组运算符中,优先级最高的运算符是()A.<=B.=C.%D.&&9.设整型变量i的值为3,则计算表达式i——i 后表达式的值是()A.0B.1C. 2D.表达式出错10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是()A.6B.9C.8D.表达式出错11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.512.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果是()A.4B.3C.2D.113.设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是()A.10<a<15B.a= =11 || a= =12 || a= =13 || a= =14C.a>10&&a<15D.!(a<=10)&&!(a>=15)14.若有以下定义:char a、 int b 、 float c 、double d,则表达式a*b+d-c值的类型为()A.floatB.intC.charD.double15.表达式“10!=9”的值是()A.trueB.非零值C.0D.116.循环语句 for (x=0,y=0;(y!=123)|| (x<4);x++);的循环执行()A.无限次B.不确定次C.4次D.3次17.在C语言中,下列说法中正确的是()A. 不能使用“do while”的循环B.“do while”的循环必须使用break语句退出循环C.“do while”的循环中,当条件为非0时将结束循环D.“do while”的循环中,当条件为0时将结束循环。
C语言模拟试题(一)一、选择题1、以下字符中不是转义字符的是( A )。
A、 '\c'B、 '\b'C、 '\\'D、 '\a'2、设 a=12,且 a定义为整型变量。
执行语句a+=a-=a*=a;后 a的值为( A)。
A、 0B、 144C、 132D、 123、已定义 float x=,y=;依照下面的输出结果,正确的输出语句是(C ).y+x=,y-x=A、 printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);B、 printf("y+x=%f,y-x=%f\n",y+x,y-x);,lC、 printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);D、 printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);4、执行下面程序段后 ,b的值为 (A ).int s=35;char t='A'; int b;b=((s&&4)&&(t<'a'));A、 1B、 3C、 2D、 05 k是整型 ,则以下程序段的执行结果是:(B )k=-3;if(k<=0) printf("####")else printf("&&&&");A、 ####B、有语法错误,无结果C、 &&&&D、 ####&&&&6设 j和 k都是 int 种类,则下面的 for 循环语句( D)。
for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);A、最多执行 9次B、是无量循环C、循环体一次也不执行D、最多执行 10 次7 以下正确的描述是(A ).A、只幸亏循环体内和switch 语句内使用 break 语句B、 continue 语句的作用是停止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用 goto 语句D、在循环体内使用break和 continue 语句的作用相同8 以下能对一维数组a进行正确初始化的语句是(B)。
C语言程序设计模拟考试试卷及答案(一)一、单项选择题1.一个C程序的执行是从( )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是( )。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_3.以下定义语句中正确的是( )。
A) char a='A'b='B'; B) float a=b=10.0;C) int a=10,*b=&a; D) float *a,b=&a;4.设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是( )。
A) a++; B) b++ C) c++; D) d++;5.以下4个选项中,不能作为一条C语句的是( )。
A) {;} B) a=0,b=0,c=0;C) if(a>0); D) if(b==0) m=1;n=2;6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。
A) a=a+b=b++ B) w%(int)a+b)C) (c+w)%(int)a D) w=a==b;7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。
A) p=1; B) *q=2; C) q=p; D) *p=5;8.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ;C) scanf(“%d”,&pa) ; D) scanf(“%d”,*pa);9.若有说明:char*language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C ”};则表达式*language[1]>*language[2]比较的是()。
c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。
答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。
答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。
答案:continue4. C语言中,使用________关键字可以立即退出循环。
《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。
A) MAIN B) _HJ C)2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是(B)。
A) \r B) \n C)\b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。
A) 1, 1 B) 1, 2 C) 2, 2 D)2, 15、已知ch为字符型变量,下面表达式中正确的是(A)。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是(C)。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是(A)。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是(C)。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是(A)A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A ) A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是(A)A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(B )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是(B)int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
C语言程序设计模拟试题一(含答案)1、下列述叙中正确的是A) 显示器和打印机都是输出设备B) 显示器只能显示字符C) 通常的彩色显示器都有7种颜色D) 打印机只能打印字符和表格2、微型计算机中运算器的主要功能是进行A) 算术运算B) 逻辑运算C) 算术和逻辑运算D) 初等函数运算3、是DOS系统的最外层模块,通常称之为A) 引导程序B) 输入输出系统C) 命令处理系统D) 文件管理系统4、电子邮件是A) 网络信息检索服务B) 通过Web网页发布的公告信息C) 通过网络实时交互的信息传递方式D) 一种利用网络交换信息的非交互式服务5、和十进制数225相等的二进制数是A) 11101110 B) 11111110C) 10000000 D) 111111116、下列叙述中正确的是A) 指令由操作数和操作码两部分组成\B) 常用参数xxMB表示计算机的速度C) 计算机的一个字长总是等于两个字节D) 计算机语言是完成某一任务的指令集7、计算机的内存储器比外存储器A) 价格便宜B) 存储容量大C) 读写速度快D) 读写速度慢8、设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是A) B盘上的A.TXT文件被复制到C盘的PRN文件B) 屏幕上显示B盘上的A.TXT文件内容C) B盘上的A.TXT文件内容在打印机上输出D) B盘上的A.TXT文件被复制到B盘上的PRN文件9、要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B 盘当前目录是什么,完成这件任务可以使用的命令是A) COPY A:X1.TXT+C:B1.TXT Z.TXTB) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXTC) COPY A:X1.TXT+C:\\WS\\B1.TXTD) COPY X1.TXT+B1.TXT B:Z.TXT10、下列四组DOS命令中,功能等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXTC) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXTD) TYPE *.FOR>CON与COPY *.FOR CON11、设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令A) DEL A*.TXT B) DEL \\AA\\A.TXTC) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT12、在Windows中,启动应用程序的正确方法是A) 用鼠标指向该应用程序图标B) 将该应用程序窗口最小化成图标C) 将该应用程序窗口还原D) 用鼠标双击该应用程序图标13、在Windows中,终止应用程序执行的正确方法是A) 将该应用程序窗口最小化成图标B) 用鼠标双击应用程序窗口右上角的还原按钮C) 用鼠标双击应用程序窗口中的标题栏D) 用鼠标双击应用程序窗口左上角的控制菜单框14、在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A) RAM中B) ROM中C) 硬盘中D) 寄存器中15、使计算机病毒传播范围最广的媒介是A) 硬磁盘B) 软磁盘C) 内部存储器D) 互联网16、设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4C) 11 D) 1217、下列程序的输出结果是main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2C) 0 D) 3.0718、下列程序执行后的输出结果是(小数点后只写一位)main(){ double d; float f; ling l; int i;i=f=1=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.019、下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;20、设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -121. 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1;else if(x<0)y=-1;else y=0;B) if(x)if(x>0)y=1;else if(x<0)y=-1;else y=0;C) y=-1if(x)if(x>0)y=1;else if(x==0)y=0;else y=-1;D) y=0;if(x>=0)if(x>0)y=1;else y=-1;22. 以下循环体的执行次数是main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2C) 1 D) 023. 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用break语句退出C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环D) 用do-while语句构成的循环,在while后的表达式为零时结束循环24. 下列程序执行后的输出结果是main(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }A) G B) HC) I D) J25. 执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33C) 30 D) 1026. 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中0≤i≤9, 则对a数组元素不正确的引用上A} a[p-a] B} *(&a[i])C} p[i] D} a[10]27、下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n,b[0]);}A) 6 B) 7C) 8 D) 928、下列程序的运行结果是#include <stdio.h>main(){ int a=2,c=5;printf("a=%d,b=%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5C) a=d, b=d D) a=%d,b=%d29、下列程序执行后的输出结果是main(){ int a[3][3], *p,i;p=&a[0][0];for(i=p; i<9; i++) p[i]=i+1;printf("%d \n",a[1][2]);}A) 3 B) 6C) 9 D) 随机数30、设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节B) 5个字节C) 6个字节D) 7个字节31、下列程序的输出结果是int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf("%d \n",res);}A) 4 B) 6C) 8 D) 1032、在以下四组中,每组有两个分别运算的函数,运算结果相同的是main(){ int i, j, m=0, n=0;for(i=p; i<2; i++)for(j=0; j<2; j++)if(j>=i) m=1; n++;printf("%d \n",n);}A) 4 B) 2C) 2 D) 033、下列程序的输出结果是struct abc{ int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0],a+s[1],b;printf("%d \n",t);}A) 5 B) 6C) 7 D) 834、设int b=2;表达式(b>>2)/(b>>1)的值是A) 0 B) 2C) 4 D) 835、在C程序中,可把整型数以二进制形式存放到文件中的函数是A) fprintf函数B) fread函数C) fwrite函数D) fputc函数36、下列程序执行后的输出结果是main(){ char x=0xFFFF; printf("%d \n",x--); } A) -32767 B) FFFEC) -1 D) -3276837、若有定义: float w;int a, b;则合法的switch语句是A) switch(w){ case 1.0: printf("*\\n");case 2.0: printf("**\\n");}B) switch(a);{ case 1 printf("*\\n");case 2 printf("**\\n");}C) switch(b){ case 1: printf("*\\n");default: printf("\\n");case 1+2: printf("**\\n");}D) switch(a+b);{ case 1: printf("*\\n");case 2: printf("**\\n");default: printf("\\n");}38、以下程序段的执行结果是int a, y;a=10; y=0;do{ a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(y>20) break;{ while(a=14);A} a=12 y=12a=14 y=16a=16 y=20a=18 y=24B} a=12 y=12a=16 y=28C} a=12 y=12D} a=12 y=12a=14 y=26a=14 y=4439、若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…A} void fun(int m, int x[]) B} void fun(int s, int h[41])C} void fun(int p, int *s) D} void fun(int n, int a)40、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bouC) re'hi'you D) abre'hi'y\\bou41、请选出正确的程序段A) int *p;scanf("%d",p);…B) int *s, k;*s=100;…C) int *s, k;char *p, c;s=&k;p=&c;*p='a';…D) int *s, k;char *p, e;s=&k;p=&c;s=p;*s=1;42、已知指针p的指向如下图所示,则执行语句*--p;后*p的值是A) 30 B) 20C) 19 D) 2943、设已有定义:char *st="how are you";下列程序段中正确的是A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11];strcpy(a, st);D) char a[], *p;strcpy(p=&a[1],st+2);44、下列程序执行后的输出结果是mai(){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}A) you&ne B) youC) me D) err45、下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}A) hello B) helC) hlo D) hlm46、假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是main()int argc, char *argv[]){int i;if(argc<-0)return;for(i=1;i<argc;i++)printf("%c", *argv[i]);}A) hello good B) hgC) hel D) hellogood47、下列程序执行后的输出结果是#define MA(x) x*(x-1)main(){ int a=1,b=2;printf("%d \n",MA(1+a+b));}A) 6 B) 8C) 10 D) 1248、变量a所占内存字节数是union U{ char st[4];int i;long l;};struct A{ int c;union U u;}a;A) 4 B) 5C) 6 D) 849、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,45650、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s); }A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456答案:ACCDD ACCDBCDDBD ACAABACDAA DABBCBABDA CDBCCCBABC BBCDD。
C语言模拟一一、填空与选择1. C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
2. C语言的表达式与语句的区别在于___________________________________。
3. C语句_____________ (有、没有)输入、输出语句。
4.结构化程序的编写有_______________________________三种程序结构。
5. C语言中,变量的存储类别共有四种,即时___________________和寄存器型。
6.表达式10/3*9%10/2的值是___________________。
7.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________。
8.设有“int x=1”,则“x>0?2*x+1:0”表达式的值是______________________。
9.变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被40 0整除。
请用逻辑表达式表示所给条件。
_________________________________________________________________10.C语言调用函数中,参数的虚实结合是_________________A. 传值B. 传址C. 不分11. 逻辑运算符“&&、||、!”中是短路运算符号是____________________二、读程序2.写出下列程序的输出结果:main(){int x,y,z;x=y=z=-1;printf("x=%d\ty=%d\tz=%d\n",x,y,z);++y&&++x||++z;printf("x=%d\ty=%d\tz=%d\n",x,y,z);x=y=z=-1;++x||y++&&z;printf("x=%d\ty=%d\tz=%d\n",x,y,z);}4.标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)int p=1,q=5;float f1(int a){int b,c;char ch;…局部变量ch在此范围内有效}char c1;char f2(int x,int y){int i,j;6.分析下列程序所完成的功能。
main(){int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;scanf("%d,%d,%d",pa,pb,pc);if (*pa>*pb)p=pa,pa=pb,pb=p;if (*pa>*pc)p=pa,pa=pc,pc=p;if (*pb>*pc)p=pb,pb=pc,pc=p;printf("%d<=%d<=%d",*pa,*pb,*pc); }三、程序填空:(根据题意,将空缺的语句补上。
)2.阅读函数,根据函数完成的主要功能,补充、完善主函数。
float av(float a[],int n){int i;float s;for (i=0,s=0;i<n;i++) s=s+a[i];return (s/n); }main(){float a[10];_______________for (i=0;_________)scanf("%f"______);printf("%f",av(a,10)); }3.从键盘输入一些字符,逐个把它们送到磁盘文件TEXT.txt中,直到输入一个“$”为止。
请将空缺地方补充完善。
#include "stdio.h"main(){FILE *fp;char ch;if ((fp=fopen("test.txt","w"))==NULL){printf("cannot open file\n");;};while(ch!=’$’){ fputc(ch,fp);putchar(ch);ch=getchar(); }_______________________; }四、编程:1.输入一单精度二维数组a[4][3],计算该二维数组中的最大元素的值及其所在位置(行、列),并输出计算结果。
2.个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案一、填空与选择1. 编辑、编译、连接、执行2. “表达式”未尾加“;”号就成“语句”3. 没有4. 顺序、分支、循环5 自动型、外部型、静态型9. y%4= =0 && y%100!=0 || y%400==06. 7. 8. 10. 11 12. 13. 14 15 16 173 9 3 A &&、|| C B C C C Union二、读程序2. X=-1 Y=-1 Z=-1 X=-1 Y=0 Z=0 X =0 Y=0 Z=-14. 标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)6. 从小到大排序。
三、程序填空:(根据题意,将空缺的语句补上。
)2. int II<10;I++&a[I]3. exit(o)ch=getchar()fclose(fp)四、编程:(略)1.main(){float a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}int m,n,b,c,d;b=a[0][0];c=0;d=0;for(m=0;m<4;m++)for(n=0;n<4;n++)if(b<a[m][n]){ b=a[m][n]; c=m;d=n; }printf(“a[%f][%f]=%f”c,d,a[c][d],); }2. N个学生,每个学生的信息包括学号、性别,从键盘上输入N个学生的信息,要求输出学号、性别等信息。
struct abc{ char a[20];char b; }main(){struct abc stud1[10];int a;for(a=0;a<10;a++)scanf(“%s”,a);二一、选择题(1—14每题1分,15-18每题1.5分,共20分)1.可选作用户标识符的一组标识符是()A voidB c5_b8C ForD 3aDefine _53 -ab DOWORD IF Case int3.在TC中,基本int a[4]类型变量所占的字节数是()A.1B.2C.4D.85.设int型变量a为5,使b不为2的表达式是()A.b=a/2B.b=6-(-a)C.b=a%2D.b=a>3?2:16.一个C程序的执行是从()A.main()函数开始,直到main()函数结束。
B.第一个函数开始,最后一个函数结束。
C.第一个语句开始,最后一个语句结束。
D.main()函数开始,直到最后一个函数。
7.C语言中用于结构化程序设计的三种基本结构是()A.if、switch、breakB.if while forC.while do- while forD.顺序结构、选择结构、循环结构8.以下叙述中不正确的是()A.在不同的函数中可以使用相同名字的变量。
B.函数中的形式参数是局部变量。
C.在一个函数内的符合语句中定义变量在本函数范围内有效。
D.在一个函数内定义的变量只在本函数范围内有效。
9.若k为int 类型,且k的值为3,执行语句k+=k-=k*k后,k的值为()A.-3B.6C.-9D.-1210.有以下程序main(){int x=3,y=3,z=3;printf(“%d %d\n”(++x,y++),++z);}输出结果()A.3 3B.3 4C.4 2D.4 311.若有定义和语句:int a=21,b=021; printf(“%x,%d \n”,a,b);输出结果()A.17,15B.16,18C.17,19D.15,1712.已有定义语句:int x=3,y=4,z=5;则值为0的表达式是()A.x>y++B.x<=++yC.x!=y+z>y-zD.y%z>=y-z13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是()A.a>=10 or a<=0B.a>=10||a<=0C.a>=10&&a<=0D.a>=10|a<=014.n为整型常量,且n=2;while(n--);printf(“%d”,n);执行后的结果是:()A.2B.1C.-1D.015.若有以下定义和赋值double *q,a=5.5; int *p,i=1; double *q,a=5.5;int *p,i=1; p=&i; q=& a; 以下对赋值语句叙述错误的是( )。
A)*p=*q 变i中的值。
B)p=oxffd0;将改变p的值,使p指向地址为ffd0的存储单元。
C)*q=*p;等同于a=i;D)*p=*q;是取q所指变量的值放在p所指的存储单元16.若有以下定义语句double a[8],*p=a; int i=5; 对数组元素错误的引用是( )A)*a B) *a[5] C)*(p+i) D)p[8]17.以下选项中不能使指针正确指向字符串的是( )A) char *ch;*ch=“hello” B) char *ch=“hello”C) char *ch=“hello”;ch=“bye” D) char *ch”;ch=“hello”18.若有以下说明和定义语句:union uti {int n;double g;char ch[9];}struct srt{float xy;union uti uv;}aa;则变量aa所占内存的字节数是()A) 9 B) 8 C) 13 D) 17二、填空题(每空1分,共12分)1.C语言源程序文件的扩展名是 (1) ,经过编译后,生成文件的扩展名是 (2) ,经过连接后,生成文件的扩展名是 (3) 。
2.把a,b定义成长整型变量的定义语句是 (4)3.设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为 (5)4.已有定义:float x=5.5;则表达式:x=(int)x+2的值为 (6)5.已有定义:int x=0,y=0;则表达式:(x+=2,y=x+3/2,y+5)后,变量x的值为 (7),变量y的值为 (8),表达式的值为 (9) 。