C++程序设计综合练习题-读程序写结果题
- 格式:doc
- 大小:72.00 KB
- 文档页数:16
第四章选择结构程序设计一、选择题1.以下关于运算符优先级的描述中,正确的是 B 。
A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算B)&&(逻辑与)>算术运算>关系运算>赋值运算C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)2.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是 B 。
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)3.以下程序的运行结果是 B 。
main( ){int c,x,y;x=1;y=1;c=0;c=x++||y++;printf(“\n%d%d%d\n”,x,y,c);}A)110 B)211 C)011 D)0014.判断字符型变量ch为大写字母的表达式是 C 。
A)‟A‟<=ch<=‟Z‟B)(ch>=‟A‟)&(ch<=‟Z‟)C)(ch>=‟A‟)&&(ch<=‟Z‟)D)(ch>=‟A‟)AND(ch<=‟Z‟)5.以下if语句书写正确的是 B 。
A)if(x=0;)B)if(x>0)printf(”%f”,x); {x=x+1; printf(”%f”,x);}else printf(”%f”,-x); else printf(”%f”,-x);C)if(x>0);D)if(x>0){x=x+1; printf(”%f”,x);} {x=x+1; printf(”%f”,x) }else printf(”%f”,-x); else printf(”%f”,-x);6.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是A。
c语言程序设计期末试题A(含答案)一、单项选择题(选择一个最佳答案,每题2分,共20分)1.一个C程序的执行是从( )。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是( )。
A) _1234_B) _1_2C) int_2_D) 2_int_3.以下定义语句中正确的是( )。
A) char a='A'b='B';C) int a=10,*b=B) float a=b=10.0;D) float *a,b=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)aD) w=a==b;7.设有定义:int n=0,*p=&n,**q=则以下选项中,正确的赋值语句是( )。
A) p=1;B) *q=2;C) q=p;D) *p=5;8.设有定义:int a,*pa=以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa)。
C) scanf(“%d”,&pa)。
B) scanf(“%d”,a)。
D) scanf(“%d”,*pa);9.如有申明:char*language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};则表达式*language[1]>*language[2]比力的是()。
第一章基础知识一.填空1.每个C程序都必须有且仅有一个________ 函数。
2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3. 软件是程序,以及______、使用和维护所需要的所有文档。
4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。
6. C语言是由________组成的。
7. C语言的函数可分为主函数main、标准库函数和_________。
8. 一个函数是由两部分组成的,即:________和函数体。
9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14. C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C 语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言。
C语言模拟考试卷一、是非题(每小题1分,共5分)(1)若有说明:int a[][4] ={0,0}; 则二维数组a的第一维大小为1 BA)对B)错(2)判断char型变量cl是否为大写字母的正确表达式是(cl>= 'A')&&(cl<= 'Z')A A)对B)错(3)已知int a=1,b=-1; 则语句printf("%d\n", (a--, ++b)); 的输出结果是-1B A)对B)错(4)strcmp函数的功能是字符串的比较AA)对B)错(5)sizeof(float)是一个不合法的表达式BA)对B)错二、单项选择题(每小题3分,共75分)(1)下列关于C语言用户标识符的叙述中正确的是(A)。
A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头(2)下列叙述中正确的是(B)。
A)C语言的函数可以嵌套调用B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言编译时不检查语法(3)以下4个选项中,不能看做一条语句的是(D)。
A); B)a=5,b=2.5,c=3.6;C)if(a<5); D)if(b!=5)x=2;y=6;(4)以下程序段的描述,正确的是(C)。
x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误(5)已知char ch=’C’;则以下表达式的值是(D)。
ch=(ch>=’A’ && ch<=’Z’)?(ch+32):ch;A)A B)a C)Z D)c(6)执行下面的程序段后,变量k中的值为(A)。
int k=3, s[2];s[0]=k; k=s[1]*10;A)不定值B)33 C)30 D)10(7)现有如下定义:int a, b, *p, *q;,则下列赋值语句错误的是(D)。
C语言程序设计试题(2008 /2009 学年第二学期)一.选择题(满分30分,每题2分)1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。
A. a=b=c+8;B. a+=y+3;C. c++;D. a+b+c2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。
A. 1B. 2C. –1D. -23.执行下面程序:#include "stdio.h"void main(){int a=1,b=2,c=3;c=(a+=a+2),(a=b,b+3);printf(“%d,%d,%d”,a,b,c);}则输出结果是: A 。
A. 2,2,4B. 4,2,3C. 5,5,3D. 4,2,54.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。
A. a< >0B. !aC. a=0D. a5. for (j=0;j<11;j++);循环结束后,j的值是 B 。
A. 12B. 11C. 10D. 96. C语言中函数返回值的类型由 D 决定的。
A. return语句中的表达式类型B. 调用该函数的主调函数的类型C. 调用函数时临时决定D. 定义函数时所指定的函数类型7. 下列说法中正确的是 B 。
A 在调用用户自定义函数时,必须对其进行声明。
B 函数可以返回一个值,也可以什么值也不返回。
C 说明函数时,必须明确参数的类型和返回值。
D 在程序设计中空函数没有什么作用。
8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。
switch ( i ){case 0: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}A. 10B. 11C. 12D. 139. 下列语句中不正确的字符串赋值或初始化的是 C 。
A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'};C. char str[10]; str= "strings";D. char str[]= "strings";10. 有如下程序:#include <stdio.h>void main(){int a=1,b=0,c=0;if (a<b)if (b<0) c=0;else c++;printf (“%d\n”,c);}该程序的运行结果是 D 。
《C语言程序设计》综合练习题一、单选题1. C语言中基本数据类型有。
CA)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)整型、实型、字符型、逻辑型2. 在C语言中,数字O29是一个。
AA)八进制数 B)十进制数 C)十六进制数 D)非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是。
AA)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4.下列关于C语言用户标识符的叙述中正确的是。
BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。
5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。
DA) 顺序结构B) 选择结构C) 循环结构 D) 数组结构6. C语言提供的合法关键字是。
DA) swicth B) cha C) Case D) default7.以下非法的赋值语句是CA) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;【解析】对表达式不能进行自加自减运算。
8.在以下一组运算符中,优先级最高的运算符是。
A) <= B) = C) % D) &&【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。
由于C选项为求余运算符,所以本题正确答案为C选项。
C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。
A.main函数的入口 B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。
A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。
A. B.C.Tom B.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check_quality C.sal_ary_tot_al(5)C程序是由(D)组成。
A.若干个过程B.若干子程序C.一个主程序和若干子程序D.若干函数2.填空题(1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。
(2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。
(3)一个C语言程序至少应包含一个__主函数或main()__。
(4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。
(5)函数体用___{______符号开始,用_____}______符号结束。
(6)注释的开始和结束标志分别为__/*____和____*/____。
为增强程序的__可读性___,应该为程序写上清晰的注释。
3.编程题:参考本章例题,编写一个C程序,输出以下信息。
***********************The data is ** 2005-03-23 ***********************程序如下:#include <stdio.h>Void main(){printf(“**********************\n”);printf(“*The data is *\n”);printf(“* 2005-03-23 *\n”);printf(“**********************\n”);}第二章习题1.选择题(1)设int m=10 ,则下列表达式的值不等于零的有(A F)。
4.2练习题一、选择题1.D2.B3.A4.B和D5.C6.A7.B二、填空题1.//或/* */2.主或main3.函数首部和函数体4.编译和连接5.公号5.2练习题一、选择题1.A2.D3.B4.B5.C6.C7.D8.A9.B10.B11.D12.B13.A或B14.C15.B17.D18.D19.C20.D21.B22.A23.D24.C25.C26.B27.C28.D29.A30.B二、填空题1.102,102.#define 宏名字符串3.14.n=15.-46.a=1,b= ,c=27.c=A8.n1=%d\nn2=%d9.a+b>c&&a+c>b&&b+c>a10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.712.013.1111000014.8,46.2练习题一、选择题1.A2.C3.D4.C5.A7.A8.D9.B10.C11.A12.A13.C14.B15.正确答案为:12345678二、填空题1.102.y=1 x%i==03.屏幕中间输出一个由星号组成的菱形4.15.136.(cx=getchar())!=-1 front=cx; 7.m%n8.49.*p px=&x py=&y三、读程序,写结果1.-12.3,1,-1,3.a=16,y=604.x=12,y=45.597.2练习题一、选择题1.B2.C3.C4.A5.D6.C8.D9.C10.D11.D12.D13.A14.B15.C16.B17.B18.A19.A20.D21.B22.D23.C24.D25.D26.C二、填空题1.‘a’02.a[k] a[k] a[k]3.0 64.A B C D EA5.1,66.k=p;7.i<j8.189.4,some string * test 10.you&me三、读程序,写结果1.5 4 8 2 02.10 24 15 6 3.love china! H w l 4.66 66 555.Front一、选择题1. A2. A3. B4. B5. B6. A7. D8. C9. A10. A11. A12. B13. B14. A15. B16. B17. C二、填空题1.122.Itis3.fun(n-1)*n fun(k)4.s[i]-t[i]5.n%m i-1 x[d]6.x=n x%10 x7.m=f(a,4)+f(b,4)-f(a+b,3)8.a=1,b=1三、读程序,写结果1.s=72.s=373.bij12一、选择题1. B2. C3. B4. D5. B6. A7. B8. D9. D10. B11. D12. A13. B14. C15. C16. C17. A18. D19. B20. D二、填空题1.b->day (*b).day2.DDBBCC3.zhang 170.000000wang 150.0000004.995.max=i min=i stud[max].name,stud[max].score stud[min].name,stud[min].score6.&r 1 feof(fp) break7.BBB AAA 1238.rewind三、读程序,写结果1.2002,shangxian2.32。
《C语言程序设计》综合练习试卷(一)试题一判断题 (每题1分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。
2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。
3.字符数组中字符串可以整体输入输出。
4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。
5.C语言中数组名是指针常量。
6.结构体类型中的各成员项数据类型可以不相同。
7.函数必须有返回值,否则不能使用函数。
8.C程序执行总是从第一个函数开始。
9.可以用关系运算符对字符串进行大小比较。
10.For循环只能用于循环次数已确定的场合。
试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。
1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。
int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6 B)*(p+6) C)*p+=5 D)p+510. 已知:int *p,m=5, n; 正确的程序段是A) p=&n; scanf(" %d",&p); B) p=&n; scanf(" %d", *p);C) scanf("%d",&n); *p=n; D) p=&n; *p=m;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。
C语言程序设计考试试题(附答案)一、单项选择题若以下各题所有库函数都可以合法使用,且变量定义如下:int m=5, i=3,j=2,*p, a=8,b=0;int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6};float x=2.5,y=3.0;double z=0; long n=1;char c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’};struct student{ int num;char name[20];float score;struct student *next;}st1,st2,*ps;FILE *fp;1.若将3和10从键盘输入给变量a、x,输入语句为scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车):A a=3,x=10↙B 3,10↙C 3 10↙D 3,10.0↙2. 以下不是死循环的语句是:A for ( ;;y+=i++);B while(a) y+=i++ ;C do{ y+=i++}while (a>0);D for (b=0;(c=getchar()!=’\n’);)b++;3.若p=arr;正确的语句是:A *p=arr[10];B *p=arr[2*a];C p=arr[5];D p[i]=arr[0];4.若ps=&st1;则下面描述正确的是:A ps->num与st1->num等价。
B ps.num与st1.num等价。
C ps->num与num等价。
D ps->num与st1.num等价。
5.语句printf(“%d",a<i>j);的输出结果是:A 1B 0C 8 D都不对6.表达式 j/i+a%i+x 的值是:A 6B 4.5C 6.0D 5.57.表达式 b||a+i&&i<j 的值是:A 不确定B 0.0C 1D 08.若执行语句 a=b+=3*j+(int)x;则b的值为:A 1B 8C 0D 8.59. 若执行语句 a=b>j ?++i : i++;则a与i的值分别为:A 4 ,4B 3 ,4C 4 ,3D 3 ,310.if (a<b) if (c==d) x=8;else x=1;表示的逻辑关系是:8 a<b 且c=d 8 a<b 且c=dA x=B x=1 a<b 且c≠d 1 a≥b且c=d8 a<b 且c=d 8 a<b 且c=dC x=D x=1a≥b 1 a<b11.将字符串“Wan Ming”输入数组ch中,正确的是:A、scanf(“%s”,ch)B、scanf(“%s”,&ch)C、ch=“Wan Ming”D、gets(ch)12. 执行语句printf(“%c”,td[1][0]+’A’)的结果是:A、AB、BC、DD、E13.下列关于main()函数说法正确的是A、C语言程序总是从main()开始执行B、C语言程序可以没有main()函数C、C语言程序可以包含多个main()函数,但必须在不同的模块中D、C语言程序中main()函数不能有形式参数14.下列关于函数说法正确的是A、C语言程序的函数内还可定义其他的函数B、C语言程序的函数内不可再定义其他的函数C、C语言程序的函数不能自己调用自己D、C语言程序中只有同一源文件中的函数才能有调用与被调用关系15.若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、36C、result=11D、1116. 若#define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、result=17C、result=11D、result=25 17.C语言对宏命令叙述正确的是A、宏替换占用运行时间B、编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的C、宏命令的处理是在程序执行时进行的D、宏命令的处理是在程序连接时进行的18. 若执行语句a- =a+=a*=10;a的值为:A、0B、-10C、-100D、10019.若执行语句p=arr; printf(“%d”,*(p+i));输出结果为A、0B、2C、3D、120.若执行printf(“%s”,ch);结果为:A、’abc’B、abcC、abcdD、abc\0d21.若对数组进行初始化:char carr[ ]={’s’,’t’,’u’,’d’,’e’,’n’,’t’},barr[ ]=”student”;则正确的是A、carr与barr长度相同B、carr比barr长C、carr与barr相同D、carr比barr短22.若有说明语句int (*p)[N];则p是A、N个指向整型变量的指针B、可指向有N个整型元素的一维数组的指针C、指向N个整型变量的函数指针D、有N个指针元素的一维指针数组23.若有说明语句int *f( );则函数f是A、f是一个指向整型变量的数组指针B、f返回一个整型数据C、f是一个指向整型变量的函数指针D、f返回一个整型指针,指向函数本身24.若函数f定义如下:void f(char *d, char *s){ while ( *d++=*s++);}函数f的功能是:A、串比较B、串复制C、求串长D、串反向25.表达式100+a+’a’+x*z的值的数据类型为A、intB、floatC、doubleD、char26.若要动态申请一个double型内存单元,正确的语句是A、pd=double malloc(sizeof(double))B、pd=( * double)malloc(sizeof(double))C、pd=double * malloc(sizeof(double))D、pd=(double *)malloc(sizeof(double)) 27.若要从键盘上输入67892到变量n中,正确的语句是A、scanf(“%lf”,&n);B、scanf(“%ld ”,&n);C、scanf(“%lf ”,n);D、scanf(“%d ”,&n);28.判断字符变量c是否不为小写英文字母的正确表达式是A、’a’<=c <=’z’B、c>= ‘a’ && c<=’z’C、’a’≤c ≤’z’D、c<’a’ || c>’z’29.下列每组表达式被执行后,结果完全等价的是A、!(b= =0)与!(!b )B、b=(a=4,4*5) 与b=a=4,4*5C、float(i/j) 与float i/jD、0<x<100 与x>0 && x<10030.表达式(m&1)==(m%2)的值是A、0B、无法确定C、1D、以上都不对31.数学式ln2x+asin(60°)的C语言表达式是A、log(2*x)+a*sin(60)B、ln(2*x) +a*sin(60/180*3.14)C、ln(2*x) +a*sin(60)D、log(2*x)+a*sin(3.14*60/180)32. 要打开一个已经存在的非空文件file用于修改,则正确的语句是A、fopen(“file”,”r+”)B、fopen(“file”,”w”)C、fopen(“file”,”a+”)D、fopen(“file”,”r”)33. 若打开文件时发生错误,则f open()函数的返回值是A、1B、0C、不确定D、没有返回值34. 调用函数fseek(fp,-25L,2),其操作结果是A、文件位置指针从文件开始处前移25字节B、文件位置指针从文件结尾处后移25字节C、文件位置指针从文件当前位置处前移25字节D、文件位置指针从文件当前位置处后移25字节35. 能正确表示a和b同时为正或同时为负的逻辑表达式是A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a*b>0&&(a*b<=0)D、a*b>036. 若x=y=z=1;表达式(x--||++y)&&(z++)执行后,x,y,z的值分别为:A. 0,1,1B. 0,1,2C. 0,2,1D. 0,2,237.下列变量的初始化,不正确的是:A. int x,y=5;B. float x=y=3.5;C. char s[]=”a”;D. int a[][3]={{1},{},{0,9}};38. 可以代替while(x!=0)中的条件x!=0的是:A. xB. !xC. x==1D. x!=139.有关函数参数,下列说法不正确的是:A. 实参和形参是不同的变量;B. 实参可以将数据传给形参;C. 形参可以将数据传给实参;D. 实参和形参必须个数相等,类型一致。
C++程序设计模拟题三、用C++语言描述下列命题1、A小于B并且A大于C2、A和B中有—个小于C3、A是奇数4、B和C中较大者与A相等5、年份Y是闰年四、写出下列程序的执行结果1.#include <iostream .h>void main(){int b[3][5]={11,12,13,14,15,21,22,23,24,25,31,32,33,34,35};int (*p)[5];p=b;for(int j=0;j<5;j++)cout<<*(*p+j)<< "," ;cout<<endl;}2.#include<iostream.h>void swapl(int a,int b){int temp=a;a=b;b=temp;}void swap2(int*a,int*b){int temp=*a;*a=*b,*b=temp;}void swap3(int*a,int*b){int*temp=a;a=b,b=temp;}void swap4(int &a,int &b)int temp=a;a=b; b=temp;}void main(){int a=10,b=20;swapl(a,b);cout<<a<<": "<<b<<endl;swap2(&a,&b);cout<<a<<": "<<b<<endl;swap3(&a,&b);cout<<a<<": "<<b<<endl;swap4(a,b);cout<<a<<": "<<b<<endl;}3.&&&#include<iostream. h>void print(int w){int i;if(w!=0){print(w-1);for(i=1;i<=w;i++)cout<<w;cout<<endl;}}void main(){print(4);}4.#include<iostream.h>#define sw(x,y) {x^=y;y^=x;x^=y;} void main(){int a=10,b=01;sw(a,b);cout<<a<<","<<b;5.假定输入10个整数:32,64,53,87,54,32,98,56,98,83。
下列程序的输出结果是什么?&&&#include<iostream.h>void main( ){int a,b,c,x;a=b=c=0;for (int k=0; k<10; k++){cin>>x;switch(x%3){case 0:a+=x; break;case 1:b+=x; break;case 2:c+=x; break;}}cout<<a<<" "<<b<<" "<<c<<endl;}6.***#include<iostream.h>void main( ){int j,k;for (j=5; j>0; j--){for (k=j; k>0; k--)cout<<"*";cout<<endl;}}7.#include <iostream.h>void main(){int nNumber;int *pPointer;nNumber = 15;pPointer = &nNumber;cout<<"nNumber is equal to :"<< nNumber<<endl;*pPointer = 25;cout<<"nNumber is equal to :"<<nNumber<<endl; }8.#include <iostream.h>int *pPointer;void SomeFunction(){pPointer = new int;*pPointer = 25;}void main(){SomeFunction();cout<<"Value of *pPointer: "<<*pPointer<<endl;delete pPointer;}9.#include <iostream.h>void AddFive(int* Number){*Number = *Number + 5;}void main(){int nMyNumber = 18;cout<<"My original number is "<<nMyNumber<<endl; AddFive(&nMyNumber);cout<<"My new number is "<<nMyNumber<<endl;}10.#include <iostream.h>void main(){int Array[3];Array[0] = 10;Array[1] = 20;Array[2] = 30;int *pArray;pArray = &Array[0];cout<<"pArray points to the value."<<endl;cout<<*pArray<<endl;cout<<*(pArray+1)<<endl;}11.***#include<iostream.h>int i=4;void main(){cout<<"i="<<i<<endl;i=5;{int i;i=7;cout<<"i="<<i<<endl;}cout<<"i="<<i;}12.***#include<iostream.h>void fun( );void main( ){fun( );fun( );}void fun( ){static int a=1;int i=5;a++;i++;cout<<"i="<<i<<",a="<<a<<endl;}13.&&&#include <iostream.h>class Point{public:Point(int xx=0, int yy=0) {X=xx; Y=yy; countP++; }Point(Point &p);int GetX( ) {return X;}int GetY( ) {return Y;}void GetC( ) {cout<<" Object id="<<countP<<endl;} private:int X,Y;static int countP;};Point::Point(Point &p){ X=p.X;Y=p.Y;countP++;}int Point::countP=0;void main ( ){ Point A(4,5);cout<<"Point A,"<<A.GetX ( ) <<","<<A.GetY ( );A.GetC ( );Point B(A);cout<<"Point B,"<<B.GetX ( ) <<","<<B.GetY ( );B.GetC ( );}14.***#include <iostream.h>int addDefault(int x=1,int y=2);void fun(void);void main(void){int addDefault(int x=3,int y=4);cout<<addDefault()<<endl;fun();}int addDefault(int x, int y){cout<<x<<"+"<<y<<"=";return x+y;}void fun(void){cout<<addDefault()<<endl;}15.***#include <iostream.h>void main(){int m,n,a=3,b=3,number;number=237;m=number/5;n=number%5;cout<<"m="<<m<<endl;cout<<"n="<<n<<endl;a+=m;b*=n;cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;}16.***#include <iostream.h>void main(){int width,height,result1,result2,result3;height=3;width=5;result1=height>3 && width>=5;result2=height>3 || width>=5;result3=!(width>=5);cout<<"result1"<<result1<<endl;cout<<"result2"<<result2<<endl;cout<<"result3"<<result3<<endl;}17.***#include <iostream.h>void main(){ int i=32,j=6;double df;df=i/j+2.3;cout<<"df="<<df<<endl;i=df/3;cout<<"i="<<i<<endl;}18.&&&# include <iostream. h>int c[10];void add(int x,int y){static int i=0;c[i]=x+y;i++;}void main(){int a[10]={1,2,3,4,5,6,7,8,9,10};int b[10]={10,9,8,7,6,5,4,3,2,1};int i=0,k=0;for(i=0;i<10;i++)add(a[i],b[i]);for(i=0;i<10;i++)cout<<c[i]<<" ";}19.#include <iostream.h>void main(){char s[30]="computer,mouse,key";int i=0,k=0;cout<<s<<endl;while(s[i]!='\0'){if(s[i]=='m') //通过数组名和下标引用数组元素k++;i++;}cout<<"i="<<i<<endl;cout<<"k="<<k<<endl;}20.#include <iostream.h>void main(){char s[]="C++ program";char *ps1="computer";char *ps2,*ps3=s;ps2="mouse";cout<<s<<" "<<ps1<<" "<<ps2<<" "<<ps3<<endl;ps1++;ps2+=2;ps3+=4;cout<<s+4<<" "<<ps1<<" "<<ps2<<" "<<ps3<<endl;cout<<*s<<" "<<*ps1<<" "<<*ps2<<" "<<*ps3<<endl;ps1=s;}21.如果输入的数据是24和18,则下列程序的输出结果是什么?*** #include <iostream.h>int fun1(int c,int d){int r;r=c%d;while(r!=0){c=d;d=r;r=c%d;}return d;}void main(){int m,n,e,d;cout<<"m n=";cin>>m>>n;e=fun1(m,n);d=m*n/e;cout<<e<<endl;cout<<d<<endl;}22.#include <iostream.h>void main(){int a[3][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8}};int b[4][3],i,j;for(i=0;i<3;i++){for(j=0;j<4;j++)cout<<a[i][j]<<" ";cout<<endl;}for(i=0;i<4;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<4;i++){for(j=0;j<3;j++)cout<<b[i][j]<<" ";cout<<endl;}}23.#include <iostream.h>#include <iomanip.h>void main(){const int m=5;int a[m][m];int i,j;for(i=0;i<m;i++){a[i][0]=1;a[i][i]=1;for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<m;i++){for(int k=0;k<30-2*i;k++)cout<<" ";for(j=0;j<=i;j++)cout<<setw(5)<<a[i][j];cout<<endl;}}24.#include <iostream.h>void main(){char s[30]="computer,mouse,key";int i=0,k=0;cout<<s<<endl;while(s[i]!='\0'){if(s[i]=='m')k++;i++;}cout<<"i="<<i<<endl;cout<<"k="<<k<<endl;}25.#include <iostream.h>#include <iomanip.h>struct student{char num[5];char name[10];char sex;int age;float mathscore;};void main(){struct student st[10]={{"001","Wangping",'f',19,84},{"002","Zhaomin",'m',20,64},{"003","Wanghong",'f',18,54},{"004","Lilei",'m',19,92},{"005","Liumin",'m',19,75}};int i,k=0;float average=0;for(i=0;i<5;i++)average+=st[i].mathscore;average/=10;cout<<"average="<<average<<endl;for(i=0;i<5;i++)if(st[i].mathscore<60){k++;cout<<st[i].num<<" "<<st[i].name<<" "<<st[i].sex;cout<<" "<<st[i].age<<" "<<st[i].mathscore<<endl;}cout<<k<<endl;}26.#include <iostream.h>void main(){int b[3][4]={23,38,16,12,56,89,66,34,58,12,90,100};int i,j,m=3,n=4;for(i=0;i<m;i++){ for(j=0;j<n;j++)cout<<*(*(b+i)+j)<<" ";cout<<endl;}for(i=0;i<20;i++) cout<<"-";cout<<endl;for(i=0;i<m;i++){ for(j=n-1;j>=00;j--)cout<<*(b[i]+j)<<" ";cout<<endl;}for(i=0;i<20;i++) cout<<"-";cout<<endl;for(i=m-1;i>=0;i--){ for(j=0;j<n;j++)cout<<b[i][j]<<" ";cout<<endl;}}27.#include <iostream.h>void main(){int a[]={12,22,32,42,52,62,72,82,92,102};int i, m=5;int *p=a;for(i=0;i<m;i++)cout<<*p++<<" ";cout<<endl;for(i=m-1;i>=0;i--)cout<<p[i]<<" ";cout<<endl;}28.#include <iostream.h>void main(){int b[2][4]={12,36,62,14,56,98,74,63};int (*p)[4]=b;int i,j;for(i=0;i<2;i++){for(j=0;j<4;j++)cout<<*(*(p+i)+j)<<" ";cout<<endl;}for(i=0;i<20;i++) cout<<"-";cout<<endl;for(i=0;i<2;i++){for(j=3;j>=0;j--)cout<<p[i][j]<<" ";cout<<endl;}}29.#include <iostream.h>#include <stdlib.h>void main(){ int func(int a,int b,char op);int (*fptr)(int a,int b,char op);fptr=func;cout<<func(3,5,'+')<<endl;cout<<fptr(3,5,'*')<<endl;}int func(int a,int b,char op){switch(op){case '+':cout<<a<<op<<b<<"=";return a+b;break;case '-':cout<<a<<op<<b<<"=";return a-b;break;case '*':cout<<a<<op<<b<<"=";return a*b;break;default:cout<<"Operator error!"<<endl; return 0;}}30.#include <iostream.h>struct student{char *num;char *name;int age;};void main(){int *ip;float *fp;char *cp;struct student *stp;fp=new float(32.6);cp=new char;*cp='A';ip=new int[10];for(int i=0;i<10;i++)ip[i]=2*i+2;stp=new struct student;stp->num="12";stp->name="Li";stp->age=18;cout<<*fp<<" "<<*cp<<" "<<endl;cout<<"num="<<stp->num<<" name="<<stp->name<<" age="<<stp->age<<endl;for(i=0;i<10;i++)cout<<ip[i]<<" ";cout<<endl;delete cp;delete fp;delete []ip;delete stp;}31.***#include <iostream.h>class Point{public:Point(int xx=0,int yy=0){X=xx; Y=yy;cout<<"构造函数被调用"<<endl;}Point(Point& p);int GetX( ) {return X;}int GetY( ) {return Y;}private:int X,Y;};Point::Point (Point& p){X=p.X;Y=p.Y;cout<<"拷贝构造函数被调用"<<endl;}Point fun2( ){ Point A(1,2);return A;}void fun1(Point p){ cout<<p.GetX( )<<endl;}void main( ){ Point A(1,2);fun1(A);Point B(A);cout<<B.GetX( )<<endl;B=fun2();cout<<B.GetX( )<<endl;}32.***#include <iostream.h>#include <math.h>class Point{public:Point(int xx=0, int yy=0){X=xx;Y=yy;cout<<"构造函数被调用"<<endl;}Point(Point &p);int GetX() {return X;}int GetY() {return Y;}private:int X,Y; };Point::Point(Point &p){X=p.X;Y=p.Y;cout<<"Point拷贝构造函数调用"<<endl; }class Distance{public:Distance(Point xp1, Point xp2);double GetDis(){return dist;}private:Point p1,p2;double dist;};Distance::Distance(Point xp1,Point xp2):p1(xp1),p2(xp2){cout<<"Distance构造函数调用"<<endl;double x=double(p1.GetX()-p2.GetX());double y=double(p1.GetY()-p2.GetY());dist=sqrt(x*x+y*y);}void main(){Point myp1(1,1),myp2(4,5);Distance myd(myp1,myp2);cout<<"The distance is:";cout<<myd.GetDis()<<endl;}33.#include <iostream.h>class Base{public:Base(int x,int y) { a=x; b=y; }void Show() { cout<<"Base: "<<a<<","<<b<<endl; }private:int a,b;};class Derived : public Base{public:Derived(int x,int y,int z) : Base(x,y),c(z) {} void Show() { cout<<"Derived: "<<c<<endl; }private:int c;};void main(){Base b(50,50),*pb;Derived d(10,20,30);pb=&b;pb->Show();pb=&d;pb->Show();}。