文档库 最新最全的文档下载
当前位置:文档库 › 程序设计基础习题及答案

程序设计基础习题及答案

《程序设计基础》习题参考答案【习题1 基本概念】

一、简答题(在课本中寻找答案,略)

1.1C程序的基本结构包括哪些内容?

1.2如何定义标识符?

1.3输入格式、输出格式的组成包括哪些内容?

1.4C语言函数分为哪两类?

1.5计算表达式的值应该考虑哪些方面?

1.6上机调试程序的步骤如何?

1.7常量与变量的区别?

1.8 C语言中的标识符的定义规则?

1.9变量为什么要“先定义,后使用”?

1.10字符常量'a'与字符串常量"a"有何区别?

1.11大小写字母转换的规则是什么?

1.12变量的具有哪三种属性?

二、单项选择题

1.13 C语言中,int型数据在内存中的存储形式是(D)。

A)ASCII码B)原码C)反码D)补码

1.14 下面四个选项中,均是不合法的用户标识符的选项是(C)。

A)BA 、x_0、do

B)float、1a0、_Y

C)x-y、goto、123

D)_123、tmp、CHAR

1.15 下列选项中不正确的常数的选项是(D)。

A)0x12F B)-1.23E-2 C)12.0 D)0388 1.16 下面正确的字符常量是(B)。

A)"a"B)'\\'C)"\n"D)"\376"

1.17 下面正确的字符串常量是(C)。

A)'a'B)'376'C)"\\n"D)376

1.18 表达式'A'+4*25.0-'b'的正确结果是(B)。

A)67 B)67.0C)不确定D)67L

1.19 执行printf("%x",100);后的输出结果是(C)。

A)100 B)0x100 C)0X64 D)64

1.20 int型的-1在内存中的存储形式是(A)。

A)1111 1111 1111 1111

B)0000 0000 0000 0001

C)1111 1111 1111 1110

D)1000 0000 0000 0001

1.21 存储字符串"\\\'abc\376"需要的字节数是(D)。

A)11 B)13 C)6 D)7

三、判断并改错

1.22C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

错误:main函数可以放在程序的任何位置。并不限定在程序的开头。

1.23定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1.24编辑与编译不是一回事。

错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。

1.25scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。

正确

1.26注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。

1.27所有的数学公式可以直接出现在源程序中。

错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。

四、编程题

1.28在屏幕上输出自己名字的拼音。

提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。

1.29输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f

3

【习题2 运算符与表达式】

一、计算题

2.1 2.8+7%3*11%2/4 (答案:2.8)

2.2 5/2+5.0/2+7%6 (答案:5.5)

2.3 a=12,a*=2+3 (答案:a=60)

2.4 a=3,b=4,c=5,a+b>c&&b= =c (答案:0)

2.5 3>5?3:5<8?25:40 (答案:25)

2.6 设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),计算表达式后m,n 的值?

(答案:m=0,n=1)

2.7 设int b=7;float a=2.5,c=4.7;求下面表达式的值。

a+(int)(b/2*(int)(a+c)/2)%4 (答案:4.5)

二、单项选择题

2.8 若有代数式bc

xy 8,则不正确的C 语言表达式是(C )。 A )x/b/c*y*8 B )8*x*y/b/c

C )8*x*y/b*c

D )x*y/c/b*8

2.9 有如下类型说明:

int k,a,b;

unsigned long w=8;

double x=2.9

则以下不符合C 语言语法的表达式是(A )。

A)x%(-3) B)w*=-2

C)k=(a=6,b=4,a-b) D)a*=a+=a-=(b=4)*(a=3)

2.10 有如下类型说明:

float n;

int m;

则以下能实现将n 中的数值保留小数点后两位,第三位四舍五入的表达式是(B )。

A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0

C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0

2.11 设k=7,x=12;则下列表达式值为3的是(D )。

A)x%=(k%=5) B)x%=(k-k%5)

C)x%=k-k%5 D)(x%=k)-(k%=5)

2.12 已知m=48,ch='a',n=0;则表达式(m>=n&&ch<'b'&&!n )的值是(B )。

A)0 B)1 C)真 D)非0

2.13 下面哪个式子在b 为奇数时结果为假(C )。

A)a%2==1 B)!(a%2==0) C)!(a%2) D)a%2

2.13 执行printf("%f",(x=3,y=5,x>y?1:1.5));后的输出结果是(D )。

A)语法错误 B)1 C)1.5 D)1.

2.14 能表示条件0≤x ≤100的表达式是(D )。

A)0<=x<=100 B)x>=0,x<=100

C)0≤x ≤100 D)x>=0&&x<=100

2.15 判断char 型变量ch 为数字的正确表达式是(B )。

A)ch>="0"&&ch<="9" B)ch>='0'&&ch<='9'

C)'0'≤ch ≤'9' D)ch>='0'||ch<='9'

三、编程题(应用条件运算)

2.16 输入一个整型成绩x ,如果大于等于60分,输出“pass ”,否则输出“fail ”。

提示:printf("%s",x>60?"pass":"fail");

2.17 输入一个年份y ,如果是闰年,输出“y is a leap year ”,否则输出“y is not a leap

year.”

提示:printf("%d is %s",y%4==0&&y%100!=0||y%400==0?"a leap year.":"not a leap year.");

2.18 输入三条边a,b,c ,如果它们能构成一个三角形,输出“Yes ”,否则输出“No ”。

提示:printf("%s",a+b>c&&a+c>b&&b+c>a?"Yes":"No");

2.19 输入三个数x,y,z ,按从小到大的输出结果。

提示:分别用max0,min0代表最大、最小值,mid0表示中间值。

max0=(x>y?x:y)>z?(x>y?x:y):z;max0=(x

mid0=x+y+z-max0-min0;

2.20 输入一个平面上的点坐标,判断它是否落在圆心(0,0),半径为1的圆内,如果在圆

内,输出“Yes ”,否则输出“No ”。

提示:分别用x ,y 代表平面上一个点。

printf("%s",x*x+y*y<=0?"Yes":"No");

2.21 自增、自减运算符的用法与运算规则示例。

2.22 计算下列表达式。

(1) (2) 提示:模仿例2.27

2.23 字母的大小写转换。

2.24 计算圆柱体的体积V=πr 2h ,其中π=

3.14159。提示:模仿2.27

2.25 输入两个整数,输出其中最大者。

提示:模仿P29

2.26 输入三个整数,输出其中最小者。

提示: min(min(a,b),c);

2.27 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。

参考源程序:

main() {float r,h,C1,Sa,Sb,Va,Vb;

a

ac

b b x 2421-+±=x

x

x y tan cos sin +=

scanf("%f,%f",&r,&h);

C1=2*3.14*r;

Sa=3.14*r*r;

Sb=4*Sa;

Va=4*3.14*r*r*r/3;

Vb=Sa*h;

printf("C1=%.2f\n",C1);

printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb); }

5

【习题3 控制流】

3.1 编程实现,输入一个整数,判断它是否为偶数,并显示相应的信息。

提示:x代表输入的整数,if(x%2==0) printf("\neven");else printf("\nodd");

3.2 编程实现,输入一个平面上的点,判断它是否落在单位圆上,并显示相应的信息。

提示:x,y代表平面坐标,if(x*x+y*y==1) printf("\nYes");else printf("\nNo");

3.3 编程实现,输入一个成绩等级(A-E),显示相应的百分制成绩段。

A: 90-100

B: 80-89

C: 70-79

D: 60-69

E: <60

提示:char grade;

if(grade=='A') printf("\n90-100");

else if(grade=='B') printf("\n80-89");

....

3.4 写出下面程序的运行结果:

#include

main()

{

int a=-1,b=1,c=5;

switch(a>0){

case 1:switch(b-2<0){

case 1:printf("&");break;

case 2:printf("*");break;

}

case 0:switch(c= =5){

case 0:printf("!");break;

case 1:printf("#");break;

default:printf("%%");

}

default:printf("@");

}

}

运行结果:&#@

3.5 将以下语句改写成switch语句。

if((t>0)&&(t<=10))

if((t>=3)&&(t<=6)) x=2;

else if((t>1)||(t>8)) x=3;

7

else x=1;

else x=0;

提示:int t;

if(t<=0||t>10) c=0;

else c=t;

switch(t)

{ case 0: x=0;break;

case 1: case 2: x=3;

case 3:case 4:case 5: case 6: x=2;

case 7:case 8: case 9: x=3;

case 10: x=2;

}

3.7 编程实现一个具有简单四则运算功能的计算器。

提示:参照例4.18,随机产生3个数,其中一个数用来判断是哪种运算。

3.8 编程实现,输入一行字符,将其中的数字字符对应的整数值加起来并输出结果。如: a45b8&*3 则是4+5+8+3,结果为20。

提示:char c; int sum=0;

while((c=getchar())!='\n') if(c>='0'&&c<='9') sum=sum+c-'0';

3.9 编程实现,求 20

1!n 的值。

提示:先计算n!,再在计算阶乘的外面套上一层循环。注意:20!是一个很大的值,float s=1;int i;例如:计算6!:

for(i=1;i<=6;i++) s=s*i;

3.10 编程实现,找出1000之内的所有完数,并按下面格式输出其因子:

6 its factors are 1,2,3,

所谓“完数”是指一个数如果恰好等于它的因子之和,因子是指能够整除该数的数。 提示:先判断数是否为完数,如果是再考虑输出因子。以6为例输出因子:

for(i=1;i<6;i++) if(6%i==0) printf("%d,",i);

3.11 编程实现,计算序列的前20项之和, 12,23,35,58,813,13

21,... 提示:这是一个累加式,每项是一个分式,用a 、b 分别表示分子、分母。注意:如果a 、b 都是整数,则是整除。float sum=0,a=2,b=1; int i;

for(i-1;i<=20;i++){sum=sum+a/b;a=a+b;b=a-b;}

3.12 编程实现,求Sn=a+aa+aaa+...+aa...a之值,其中a是一个数字。如:

2+22+222+2222+22222(此时n=5),n,a由键盘输入。

提示:这是一个累加式,后1项可以由前一项表示,譬如:第2项可以由第1项表示:第1项t=a; 第2项:t=t*10+a;

3.13 编程实现,把从键盘输入的金额数(以圆为单位)按人民币面额划分,然后显示支付

该金额的各种面额人民币的数量。

提示:譬如:123.58元可以表示100元:1张;20元:1张;2元:1张;1元:1张;5角:1张;5分:1枚;2分:1枚;1分:1枚。

为了简单可以只完成整数部分转换,即输入的金额数为整数。

3.14 编程实现,使用循环结构打印以下图案。

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

提示:输出时,本图案要按向上三角形和向下三角形进行输出。每行输出中包括空格输出,‘*’号输出。输出空格和‘*’号个数要与行循环控制变量关联起来。

3.15 编程实现,以菜单方式实现猜数游戏系统。(功能自己设定)

提示:模仿例4.14和例4.18完成。功能可以包括猜数范围,人数等设置。

3.16 编程实现,以菜单方式实现四则运算辅助教学系统。

提示:随机产生两个操作数和运算符+、-、*、/,由使用者输入一个数,判断计算结果与输入的数是否相等,如果相等,表示正确,否则是错误的。

3.17 输入四个整数,要求按大小顺序输出。

参考源程序:

main()

{ int a,b,c,d,t;scanf("%d,%d,%d,%d",&a,&b,&c,&d);

if(a

if(a

if(a

if(b

if(b

if(c

printf("%d,%d,%d,%d\n",a,b,c,d);

}

3.18 求∑n!(n=1->20),(即求1!+2!+3!+4!+5!+…+20!)

参考源程序:

main()

{ int n,i=1;long sum=0,s=1;

scanf("%d",&n);

while(i<=n)

{s=s*i;sum=sum+s;i++;}

printf("sum=%ld\n",sum);

}

3.19 输入两个正整数m和n,求其最大公约数和最小公倍数。

main()

{long m,n,i=1,j,s;

scanf("%ld,%ld",&m,&n);

for(;i<=m&&i<=n;i++)

{if(m%i==0&&n%i==0) s=i;}

if(m>=n) j=m;

else j=n;

for(;!(j%m==0&&j%n==0);j++);

printf("s=%ld,j=%ld\n",s,j);

}

3.20 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

参考源程序:

#include"stdio.h"

main()

{

char c;int i=0,j=0,k=0,l=0;

while((c=getchar())!='\n')

{if(c>=65&&c<=90||c>=97&&c<=122) i++;

else if(c>=48&&c<=57) j++;

else if(c==32) k++;

else l++;

}

printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l);

}

3.21 打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。

参考源程序:

#include"math.h"

main()

{

9

int x=100,a,b,c;

while(x>=100&&x<1000)

{a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;

if(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf("%5d",x);

x++;

}

}

3.22 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

参考源程序:

main()

{

int i=1,sum=0;

for(;i<=10; i++)

sum=2*sum+1;

printf("sum=%d\n",sum);

}

3.23 打印以下图案

*

***

*****

*******

*****

***

*

参考源程序:

#include"math.h"

main()

{

int i=1,k,l,m;

for(;i<=49;i++)

{

k=i%7;

l=3-fabs((i-1)/7-3);

m=fabs(i-4-7*((i-1)/7));

if(k==1)

printf("\n");

if(m<=l)

printf("*");

else

printf(" ");

}

printf("\n");

}

3.24 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

2.程序源代码:

main()

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i<=20;i++)

{ printf("%12ld %12ld",f1,f2);

if(i%2==0) printf("\n");/*控制输出,每行四个*/

f1=f1+f2; /*前两个月加起来赋值给第三个月*/

f2=f1+f2; /*前两个月加起来赋值给第三个月*/

}

}

11

【习题4 函数与程序结构】

一、填空题

4.1 C语言程序执行的开始处是main函数。

4.2 C程序中的一个函数由两部分组成,即声明部分和执行部分。

4.3为了保证被调用函数不返回任何值,其函数定义的类型应为void。

4.4若一个局部变量的存储类型是static,则该变量的值在程序执行完成时被释放。

4.5预处理命令#include的作用是文件包含。

4.6定义一个宏,功能是判断两个数是否相等,相等为1,不等为0。

#define EQU(a,b) (a)==(b)?1:0

4.7 变量的存储类别有自动型、静态型、寄存器型、和外部类型共4

种,它们分别用auto、static、register、extern标识。

二、选择题

4.8下述函数定义形式正确的是(C)。

A. int f(int x; int y)

B. int f(int x,y)

C. int f(int x, int y)

D. int f(x,y: int)

4.9 关于函数参数,说法正确的是(A)。

A. 实参与其对应的形参各自占用独立的内存单元

B. 实参与其对应的形参共同占用一个内存单元

C. 只有当实参和形参同名时才占用同一个内存单元

D. 形参是虚拟的,不占用内存单元

4.10 用数组名作为函数的实参时,传递给形参的是(A)。

A. 数组的首地址

B. 数组的第1个元素

C. 数组中的全部元素

D. 数组的元素个数

4.11复合语句中定义的变量的作用范围是(D)。

A. 整个源文件

B. 整个函数

C. 整个程序

D. 所定义的复合语句

4.12一个函数的返回值由(D)确定。

A. return语句中的表达式

B. 调用函数的类型

C. 系统默认的类型

D. 被调用函数的类型

4.13在一个C源文件中,若要定义一个只允许本源文件所有函数使用的全局变量,其他文件中不允许使用,则该变量需要使用的存储类别是(D)。

A. auto

B. register

C. extern

D. static

三、判断题

4.14若定义的函数没有参数,则函数名后的圆括号可以省略。(⨯)

4.15函数的函数体可以是空语句(√)。

4.16只有main函数才能调用其他函数。(√)

4.17return语句中表达式的类型必须与函数定义的类型一致。(⨯)

4.18函数的实参和形参可以是相同的名字。(√)

4.19函数调用中,形参与实参的类型和个数必须保持一致。(√)

4.20外部类型的变量只能定义一次,但可在不同地方声明多次。(√)

4.21外部类型的变量作用范围大,编程中应多用外部变量。(⨯)

4.22预处理命令行必须以#开头,且最后要用分号结尾。(⨯)

4.23宏命令的处理占用编译时间,而不占用运行时间。(√)

四、看程序写结果

4.24

int fun(int n)

{int f=1;

f = f*n*2;

return(f);

}

main()

{ int i,j;

for(i=1; i<=5; i++)

printf("%d\t", fun(i));

}

程序运行结果:2 4 6 8 10

4.25

int x1=30, x2=40;

main()

{int x3=10,x4=20;

sub(x3,x4);

sub(x2,x1);

printf("x1=%d,x2=%d,x3=%d,x4=%d", x1,x2,x3,x4);

}

sub(int x,int y)

{int x1=x;

x=y;

y=x1;

}

程序运行结果:x1=30,x2=40,x3=10,x4=20

4.26

#define A 4

#define B(x) A*x/2

main()

{float c, a = 4.5;

c=B(a);

printf("c=%5.1f", c);

}

程序运行结果:c= 9.0

五、编程题

4.25写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

提示:最大公约数可以采用“辗转相除法”,最小公倍数将两数乘积除于最大公约数。“辗转相除法”:设两个数分别用m,n表示且m>n,临时变量t,t=m%n;m=n;n=t;直到n等于0。

4.26有3⨯3的矩阵A和3⨯2的矩阵B,编制一个函数,求C=AX⨯B。

提示:参照习题5.17,A,B,C三个数组作为函数参数。

13

4.27编写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。

提示:一维字符数组用来存放字符串,并且将它传递到函数,在函数中通过元素值交换来完成反序存放。

4.28编制一个函数,由参数传入一个字符串,统计此字串中字母、数字、和其他字符的个数,在主函数中输入字符串并显示统计结果。

提示:参照例题6.10。

4.29 定义一个宏,实现将两个数互换,并写出程序,输入两个数作为使用参数,并显示结果。

提示:带参数宏,swap(a,b,t)....

4.30编写以下函数:①输入职工的姓名和职工号;②按职工号由小到大排序,姓名顺序也随之调整;③输入一个职工号,用折半法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。

提示:定义一个二维数组来存放职工信息;用数组名作函数的参数传递;通过“起泡算法”或“选择算法”;折半查找法先决条件是数据已经有序。

4.31用函数实现牛顿迭代法求一元三次方程的根。

解:牛顿迭代法的公式是:x=x0-f(x)/f’(x),设迭代误差小于10-5时结束。

参考源程序:

#include

float solut(float a,float b,float c,float d)

{ float x=1,x0,f,f1;

do{

x0=x;

f=((a*x0+b)*x0+c)*x0+d;

f1=(3*a*x0+2*b)*x0+c;

x=x0-f/f1;

}while(fabs(x-x0)>=1e-5);

return(x);

}

main()

{ float a,b,c,d;

printf(“请输入一元三次方程的系数a,b,c,c:\n”);

scanf(“%f,%f,%f,%f”,&a,&b,&c,&d);

printf(“一元三次方程为:

%5.2fx^3+%5.2fx^2+%5.2fx+%5.2f=0\n”,a,b,c,d);

printf(“该方程的根为:x=%7.2f\n”,solut(a,b,c,d));

}

4.32 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。

解:参考源程序:

/*是素数返回1,否则返回0*/

int sushuis(int m)

{ int m;

int i=2,t;

for(;i<=m;i++)

if(m%i==0&&i

if(m-i==0) t=1;

else t=0;

return t;

}

main()

{ int a,s;

printf("enter number is: \n");

scanf("%d",&a);

s=sushuis(a);

if(s==1) printf("a 是素数!\n");

else printf("a 不是素数!\n");

}

printf("%5d",y[i]);

printf("\n");

}

4.33 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

1.程序分析:

2.程序源代码:

#include "stdio.h"

main()

{

int i=5;

void palin(int n);

printf("\40:");

palin(i);

printf("\n");

}

void palin(int n)

{

char next;

if(n<=1)

{

next=getchar();

printf("\n\0:");

putchar(next);

}

else

15

{

next=getchar();

palin(n-1);

putchar(next);

}

}

4.34 在5*5格的棋盘上从点出发,按日字跳马,要求不重复地跳经所有方格。求出所有跳马方案。

参考程序:

#include"stdio.h"

int map[12][12], status[12][12],kp;

int c[8][2]={{2,1},{2,-1},{1,2},{1,-2},

{-2,1},{-2,-1},{-1,2},{-1,-2}};

void prt(int a[][12]) /* 打印棋盘状态*/

{int i,j,i2,j2;

printf("\n");

for (i=2;i<=9;i++)

{ for (j=2;j<=9;j++) printf("%4d",a[i][j]);

printf("\n");

}

}

void status2(void) /* 计算棋盘各点条件数*/

{ int i,j,k,i2,j2,kz;

for(i=0;i<12;i++)

for(j=0;j<12;j++)

status[i][j]=100;

for(i=2;i<=9;i++)

for(j=2;j<=9;j++)

{kz=0;

for (k=0;k<=7;k++)

{i2=i+c[k][0];j2=j+c[k][1];

if (map[i2][j2]<50) kz++;

}

status[i][j]=kz;

}

prt(status);

}

void sort1(int b1[],int b2[]) /* 对8个可能的方向按条件数排序*/

{int i,j,mini,t; /*b1[]记录状态值(升序),b2[]记录排序后的下标*/

for (i=0;i<7;i++)

{mini=i;

for (j=i+1;j<=7;j++)

if (b1[j]

t=b1[i];b1[i]=b1[mini];b1[mini]=t;

t=b2[i];b2[i]=b2[mini];b2[mini]=t;

}

}

void init1(void) /* 初始化*/

{int i,j,k;

for(i=0;i<12;i++)

for(j=0;j<12;j++)

map[i][j]=100;

for(i=2;i<=9;i++)

for(j=2;j<=9;j++)

map[i][j]=0;

status2();

}

void search(int i2,int j2) /* 利用递归回溯进行搜索*/ {int b1[8],b2[8],i,i3,j3;

kp++;

if(kp==65)

{prt(map); exit(0); }

for(i=0;i<=7;i++)

{b2[i]=i;

b1[i]=status[i2+c[i][0]][j2+c[i][1]];

}

sort1(b1,b2);

for(i=0;i<=7;i++)

{i3=i2+c[b2[i]][0]; j3=j2+c[b2[i]][1];

if (map[i3][j3]==0)

{ map[i3][j3]=kp; search(i3,j3); map[i3][j3]=0;

}

}

kp--;

}

main()

{

init1();

map[5][2]=1;

kp=1;

search(5,2);

}

17

【习题5 指针与数组】

一、填空题

5.1 若有定义int a[3][5];则排列在数组中的第9个元素是(a[1][3] )。

5.2 strlen("How are you\n")的值是( 12 )。

5.3 C语言中字符串结束的标志是( '\0' )。

5.4 写出一个名为s的单精度实型一维数组,长度是6,所有元素初值均为0,其数组定义语句是( float s[6]={0}; )。

5.5 strcmp("how","How")的值是( 32 或>0 )。

5.6语句int a,*p=&a;的含义是(定义整型变量a,和整型指针变量p,并且p指向变量a。)5.7定义语句int *f(); 和int (*f)();的含义分别是(int *f();表示函数返回一个整型指针;int (*f)( );表示f是函数指针,指向整型函数)

二、选择题

5.8 若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是(D )

A.1

B.2

C.3

D.4

5.9 对数组的描述正确的是(B)。

A.数组一旦定义其大小是固定的,但数组元素的类型可以不同。

B.数组一旦定义其大小是固定的,但数组元素的类型必须相同。

C.数组一旦定义其大小是可变的,但数组元素的类型可以不同。

D.数组一旦定义其大小是可变的,但数组元素的类型必须相同。

5.10 对字符串"Boy"进行完整赋值的操作是(B )。

A.char s[3] = {'B','o','y'}; B. char s[] = "Boy";

C.char s[3] = {"Boy"}; D.char s[3]; s="Boy";

5.11 在c语言中引用数组元素时,其数组下标的数据类型允许是( C)。

A.整型常量 B.整型表达式

C.整型常量或整型表达式 D.任何类型的表达式

5.12 对以下说明语句的正确理解是(B)。

int a[10]={6,7,8,9,10};

A.将5个初值依次赋给a[1]至a[5]

B.将5个初值依次赋给a[0]至a[4]

C.将5个初值依次赋给a[6]至a[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

三、看程序写结果

5.13

main()

{ int a[5]={1,2,3,4,5};

int *p=&a[1];

printf("%d",p[2]);

}

输出结果:4

5.14

main()

{ char a[]="I love China!";

char *p=a;

p=p+2;

printf("%s",p);

}

输出结果:love China!

5.15

main()

{ int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

int (*pa)[4]=a;

pa++;

printf("%d",*(*(pa+1)+2));

}

输出结果:11

5.16

main()

{ char *str[]={"zhao","qian","sun","li"};

int i;

for (i=0;i<4;i++)

printf("%c",str[i][0]);

}

输出结果:zqsl

5.17

void sub(int x,int y,int *z)

{ *z=y-x; }

main()

{

int a,b,c;

sub(10,5,&a);

sub(7,a,&b);

sub(a,b,&c);

printf("%4d,%4d,%4d\n",a,b,c);

}

输出结果:-5, -12, -7

5.18

#include

fun(char *s)

{ char *p=s;

while (*p) p++;

19

return(p-s);

}

main()

{ char *str="abcd";

int i;

i=fun(str);

printf("%d",i);

}

输出结果:4

5.19

main()

{int a[3][3] = {{1,0,2}, {2,2},{0,2}}, c[3][3],i,j;

for(i=0; i<3; i++)

{

for(j=0; j<3; j++)

{

c[i][j] = a[a[i][j]][a[j][i]];

printf("%5d",c[i][j]);

}

}

printf("\n");

}

运行结果为: 2 2 0 0 0 2 2 0 1

5.20 当运行以下程序时,从键盘输入:Ah2MA A3ha,请写出输出结果。

main()

{ char s[80], c='a';

int i=0;

scanf("%s",s);

while(s[i++]!='\0')

if(s[i] == c) s[i]=s[i]-32;

else if(s[i]==c-32) s[i]=s[i]+32;

puts(s);

}

运行结果为:aH2Ma a3hA

四、编程题

5.21 用数组方法定义一个矩阵,求其转置矩阵。

提示:已知a[3][2],转置后的结果存放在b[2][3]; 则b[j][i]=a[i][j];

5.22 从键盘输入9个不同的整数,组成三行三列的二元数组,找出每一列中的最大元素,

并输出其行、列下标。

提示:已知a[3][3],max,row,col分别用来存放一列的最大值,行下标和列下标。

5.23 利用一个二维数组,打印出以下杨辉三角形,要求打印出10行。

1

程序设计基础(C语言)习题以及答案

一、选择题 1.下列属于C语言中合法的标识符的是( B ) A 、ex-1 B 、-cook C 、951a D 、if 2.若 x 为 float 型变量,则以下语句(A )。 x=213.82631; printf("%-4.2f\n",x); A、输出为213.83 B、输出格式描述符的域宽不够,不能输出 C、输出为213.82 D、输出为-213.82 3.一个C程序的执行是从(C ) A、main函数开始,直到最后一个函数结束 B、第一个函数开始,直到最后一个函数结束 C、main函数开始,直到main函数结束 D、第一条语句开始,直到最后一条语句结 4.构成C语言源程序的基本单位是(B ) A、过程 B、函数 C、子程序 D、命令 5.以下叙述不正确的是(D ) A、注释说明被计算机编译系统忽略 B、注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用 C、注释符“/”和“*”之间不能有空格 D、在C程序中,注释说明只能位于一条语句的后面 6.在C程序中,main函数的位置( A) A、可以任意 B、必须作为最后一个函数 C、必须作为第一个函数 D、必须放在它所调用的函数之后 7. C语言属于(C ) A、机器语言 B、汇编语言 C、高级语言 D、低级语言

8.使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是(D )。 A、a=25 b=25(空格分开) B、25 25(空格分开) C、25,25 D、a=25,b=25 9.下列叙述中,不正确的是( C) A、分号是C语句的必要组成部分 B、C语句的注释可以写在语句的后面 C、主函数的名字不一定用main表示 D、函数是C程序的基本单位 10.C程序是由( B)构成的 A、若干过程 B、一个或多个函数 C、若干子程序 D、一个主程序与若干子程序 11. 以下程序的输出结果是(B )。 #include int main(){ int a=010,b=0x10,c=10; printf("%d,%d,%d",a,b,c); } A、10,10,10 B、8,16,10 C、16,8,10 D、8,10,10 12.执行以下程序后,输出结果为(A) #include int main(){ int x; float y; y=3.6; x=(int)y+10; printf("x=%d,y=%f",x,y); } A、x=13,y=3.600000 B、x=13.5,y=3.60000 C、x=13,y=3 D、x=13,y=3.6

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

C语言程序设计基础试题及答案

第一部分C语言基础 一、选择题 1.以下正确的C语言标识符是() A.%X B.a+b C.a123 D.test! 2.已定义int a,b;则以下不正确的C语句是() A.a*=5; B.b/=2; C.a+=1.75; D.b&&=a; 3.若x、i、j和k都是整型变量,则执行下面表达式后x的值为() x=(i=4,j=16,k=32) A.4 B.16 C.32 D.52 4.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须是字母B.必须为下划线 C.必须为字母或下划线D.可以是字母、数字、下划线中的任一字符 5.下面正确的字符常量是() A.“c” B.’\\”C.‘w’D.” 6.设int a=2,b=0,c;则执行语句c+=b&&a--后, c的结果为()。 A.0,1 B.1,0 C.2,0 D.不确定 7. 以下不正确的C语言标识符是( ) A) int B) a_1_2 C) ab1exe D) _x 8.以下是正确的C语言标识符是( )。 A) #define B) _123 C) %d D) \n 9.下列四组字符串中都可以用作C语言程序标识符的一组是( ) 。

A) print B) i\am C) Pxq D) str_l _3d one_half My->book Cpp ••• oodbs tart$it line# pow 10.下面各选项组中,均是C语言关键字的组是( ) 。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 11.下列不属于C语言关键字的是( ) 。 A) default B) register C) enum D) external 12.C语言程序从main()函数开始执行,所以这个函数要写在( )。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置 13.下列关于C语言的叙述错误的是( ) A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 14.在C语言中,错误的int类型的常数是( ) 。 A) 32768 B) 0 C) 037 D) 0xAF 15.将字符g赋给字符变量c,正确的表达式是( ) 。 A) c=\147

大学计算机基础(程序设计基础)习题与答案

一、单选题 1、计算机能够直接执行的程序是()。 A.汇编语言程序 B.可执行文件 C.源程序 D.命令文件 正确答案:B 2、汇编语言也称为()。 A.面向应用的语言 B.面向对象的语言 C.面向机器的语言 D.面向过程的语言 正确答案:C 3、C、C++、Java可归类为()语言。 A.符号 B.机器 C.高级 D.自然 正确答案:C

4、根据计算机语言发展的过程,下列排列顺序正确的是()。 A.机器语言、高级语言、汇编语言 B.机器语言、汇编语言、高级语言 C.汇编语言、机器语言、高级语言 D.高级语言、机器语言、汇编语言 正确答案:B 5、编译程序将高级语言程序翻译成与之等价的机器语言程序,编译前的程序可以称呼()。 A.目标程序 B.源程序 C.临时程序 D.原程序 正确答案:B 6、()都属于计算机的低级语言。 A.机器语言和高级语言 B.汇编语言和高级语言 C.机器语言和汇编语言 D.高级语言和数据库语言 正确答案:C

7、在程序设计中,把解题过程准确而完整地描述出来,就叫 ()。 A.算法 B.方法 C.事件 D.过程 正确答案:A 8、()是一种使用几何图形描述程序逻辑关系的程序设计方法。 A.流程图 B.饼图 C.数据流图 D.柱形图 正确答案:A 9、用C语言编写的程序需要用()程序翻译后计算机才能识别。 A.汇编 B.解释 C.连接 D.编译 正确答案:D

10、可被计算机直接执行的程序由()语言编写的程序。 A.汇编 B.机器 C.高级 D.网络 正确答案:B 11、由二进制编码构成的语言是()。 A.C语言 B.BASIC语言 C.汇编语言 D.机器语言 正确答案:D 12、结构化程序设计中的三种基本程序结构是指()。 A.顺序结构、转移结构、分支结构 B.顺序结构、转移结构、循环结构 C.顺序结构、选择结构、循环结构 D.转移结构、选择结构、分支结构 正确答案:C 13、算法的基本结构中不包括()。

计算机程序设计基础习题册(含答案)

《计算机程序设计基础》 习 题 册

计算机程序设计基础_基础知识(一)班级学号姓名成绩一、单选题 1.C++源程序文件的默认扩展名为A。 A) cpp B) exe C) obj D) lik 2.由C++源程序文件编译而成的目标文件的默认扩展名为C。 A) cpp B) exe C) obj D) lik 3.由C++目标文件连接而成的可执行文件的默认扩展名为B。 A) cpp B) exe C) obj D) lik 4.编写C++程序一般需经过的几个步骤依次是B。 A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接 5.程序中主函数的名字为 A 。 A) main B) MAIN C) Main D) 任意标识符 6.下面四个选项中,均是不合法的用户标识符的选项的是C。A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 7.下列变量名中合法的是C。 A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 8.存储以下数据,占用存储字节最多的是 D 。 A) 0 B) ‘0’ C) “0” D) 0.0 9.在C++语言中,字符型数据在内存中的存储形式是D。 A) 补码 B) 反码 C) 原码 D) ASCII码 10.若有说明语句:char c =’\072’;则变量c A。 A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令

程序设计基础试题(附答案)

程序设计基础试题(附答案)程序设计基础试题(附答案) 程序设计是计算机科学领域中的一门重要学科,它涉及到计算机软件的开发过程以及解决问题的方法和技巧。掌握程序设计基础知识对于想要成为一名优秀的程序员来说至关重要。本文将给出一些程序设计基础试题,并附上详细的答案解析,希望能够对初学者或者想要提升编程水平的人有所帮助。 题目一: 设计一个程序,输入一个整数n,输出1到n之间的所有偶数。 解答: ```python n = int(input("请输入一个整数:")) for i in range(1, n+1): if i % 2 == 0: print(i) ``` 题目二: 编写一个函数,判断一个字符串是否是回文串(正着读和反着读都一样的字符串)。

解答: ```python def is_palindrome(s): if s == s[::-1]: return True else: return False string = input("请输入一个字符串:") if is_palindrome(string): print("是回文串") else: print("不是回文串") ``` 题目三: 编写一个程序,统计一个字符串中每个字符出现的次数。解答: ```python string = input("请输入一个字符串:")

char_count = {} for char in string: if char in char_count: char_count[char] += 1 else: char_count[char] = 1 for char, count in char_count.items(): print(f"{char}: {count}") ``` 题目四: 设计一个程序,计算斐波那契数列的第n项。解答: ```python def fibonacci(n): if n <= 0: return None elif n == 1 or n == 2: return 1 else:

程序设计基础练习题(全部有答案版)

程序设计基础练习题(全部有答案版)程序设计基础练习题(全部有答案版) 介绍: 程序设计是计算机科学中的一门基础学科,它涉及到计算机程序的设计、编写和调试。通过练习基础练习题,学生可以巩固和提高自己的程序设计能力。本文将为您提供一些程序设计基础练习题,并附上答案,帮助您更好地理解和掌握程序设计的基本知识。 1. 基本输入输出 题目描述:编写一个程序,要求用户输入两个数字,然后将这两个数字相加并输出结果。 ```C++ #include int main() { int num1, num2, sum; std::cout << "请输入两个数字:" << std::endl; std::cin >> num1 >> num2; sum = num1 + num2; std::cout << "两个数字的和为:" << sum << std::endl; return 0;

``` 2. 条件判断 题目描述:编写一个程序,要求用户输入一个整数,然后判断该整数是否为偶数,并输出判断结果。 ```Java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num; System.out.println("请输入一个整数:"); num = scanner.nextInt(); if (num % 2 == 0) { System.out.println("该整数是偶数。"); } else { System.out.println("该整数不是偶数。"); } }

程序设计基础习题及答案

程序设计基础习题及答案 1.下面对类-对象主要特征描述正确的是()。A A)对象唯一性 B)对象无关性 C)类的单一性 D)类的依赖性 3.下面不属于对象主要特征的是()。C A)唯一性 B)多态性 C)可复用性 D)封装性 5.下面不属于对象主要特征的是()。D A)对象唯一性 B)对象分类性 C)对象多态性 D)对象可移植性 7.面向对象方法中,实现对象的数据和操作结合于统一体中的是()。B A)结合 B)封装 C)隐藏 D)抽象 9.在面向对象方法中,不属于"对象"基本特点的是()。A

A)一致性 B)分类性 C)多态性 D)标识唯一性 11.结构化程序所要求的基本结构不包括()。B A)顺序结构 B)GOTO跳转 C)选择(分支)结构 D)重复(循环)结构 13.下列选项中不属于结构化程序设计原则的是()。A A)可封装 B)自顶向下 C)模块化 D)逐步求精 15.下列选项中属于面向对象设计方法主要特征的是()。A A)继承 B)自顶向下 C)模块化 D)逐步求精 17.结构化程序设计中,下面对goto语句使用描述正确的是()。C A)禁止使用goto语句 B)使用goto语句程序效率高 C)应避免滥用goto语句 D)以上说法都不对

19.下面属于整数类的实例是()。A A)0x518 B)0.518 C)"-518" D)518E-2 21.下面不属于对象基本特点的是()。B A)标识唯一性 B)可复用性 C)多态性 D)封装性 23.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是()。A A)C编译程序 B)ERP系统 C)学籍管理系统 D)CAI软件 25.不属于结构化程序设计原则的是()。A A)可封装 B)自顶向下 C)模块化 D)逐步求精

《C语言程序设计基础》习题以及答案

第一章C语言概述 一、选择题 1.C语言规定,必须用作为主函数名。 A)Function B)include C)main D)stdio 2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个,一个C程序总是从开始执行。 A)过程B)主函数C)函数D)include 3.是C程序的基本构成单位。 A)函数B)函数和过程C)超文本过程D)子程序 4.下列说法正确的是。 A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可 B)一个函数的函数体必须要有执行部分,可以没有变量定义 C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数 D)以上都不对 5.下列说法正确的是。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序中间部分,执行C程序时是从程序开头执行的 D)main函数可以放在C程序中间部分,执行C程序时是从main函数开始的 6.下列说法正确的是。 A)在执行C程序时不是从main函数开始的 B)C程序书写格式严格限制,一行内必须写一个语句 C)C程序书写格式自由,一个语句可以分写在多行上 D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号 7.在C语言中,每个语句和数据定义是用结束。 A)句号B)逗号C)分号D)括号 8.下列字符串是合法的自定义标识符的是。 A)_HJ B)9_student C)int D)LINE 1

9.不是C语言提供的合法关键字。 A)switch B)print C)case D)default 10.C语言提供的合法关键字是。 A)break B)print C)funiton D)end 11.C语言提供的合法关键字是。 A)continue B)procedure C)begin D)append 二、填空题 1.一个C程序至少包含一个,即。 2.一个函数由两部分组成,它们是和。 3.函数体的范围是。 4.函数体一般包括和。 5.C语言是通过来进行输入输出的。 6.在C语言中一个标识符后面紧跟着一对圆括号,通常表明它是一个。 7.主函数名后面的一对圆括号中间可以为空,但一对圆括号不能。

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析 第1章 C 语言概述 一、填空 a) C源程序的基本单位是函数。 b) 一个C程序中至少应包括一个 main函数。 c) 在C语言中,输出操作是有库函数 printf( )函数完成。二、单选题 1、A 2、C 3、B 解析: 第1题答案:A 。因为一个C程序总是从main函数开始执行的, 而不论main函数在程序中的位置。且到main函数结束。 第2题答案:C 。因为 main函数没有限制必须位于程序的最前 面。C程序书写自由,一行内可写几个语句。在对一个C 程序进行编 译的过程中,无法检查注释当中的拼写错误。不过C语言本身并没有 输入输出语句,输入输出是由函数完成的。 第3题答案:B。因为一个C语言程序是由若干个函数组成的。 但至少包含一个main 函数,且main函数的位置不限。三、编程题 1、编写一个输出“Welcome to C!”信息的小程序。 解:程序如下 #include “stdio.h” main( ) { 1

printf(“Welcome to C!”) ; } 2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。 海伦公式为:S?= ,其中s= (a+b+s)/2 ; 解:程序如下 #include “math.h” #include “stdio.h” main( ) { int a , b , c ; /* a ,b,c 3个整型变量表示三角形 的3条边。*/ float s ,s1 ; /* s1作为面积变量,s 作为中间变 量是都应该是实形*/ a=3 ; b= 4; c=5 ; s= (a+b+c)/2.0 ; s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开 平方根功能。*/ printf(“area=%f\n”,s1); } 2 第2章程序设计基础知识 一、单选题 1、C 2、A 3、C 4、A 5、C 6、C 7、D 8、C 9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.wendangku.net/doc/d019155974.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

程序设计基础理论练习题(带答案)

程序设计基础理论练习题(带答案)程序设计基础理论练习题(带答案) 1. 编程语言的发展历程 从机器语言到高级语言的发展,现代计算机编程语言的分类和特点。 答案:编程语言的发展经历了多个阶段。最早的计算机只能使用机器语言进行编程,这是一种由0和1组成的二进制代码。随着计算机的发展,高级语言逐渐出现。高级语言通过使用更接近自然语言的语法和结构,使得编程更加易于理解和用户友好。现代计算机编程语言多种多样,比如C、Java、Python等。它们各自有着不同的特点和用途。 2. 数据类型与变量 不同编程语言中常见的数据类型和变量的定义、使用方法。 答案:不同编程语言中常见的数据类型包括整数、浮点数、布尔值、字符和字符串等。变量用于存储不同类型的数据。在大部分编程语言中,变量需要先定义,然后才能使用。定义变量时需要指定变量名和数据类型。变量名是用于标识变量的名称,而数据类型决定了变量可以存储的值的种类和范围。使用变量时可以给其赋值或者读取其值。 3. 运算符

常见的运算符有哪些?它们的功能和使用方法是什么? 答案:常见的运算符包括算术运算符、比较运算符、逻辑运算符 和赋值运算符等。算术运算符包括加、减、乘、除、取余等,用于执 行基本的数学运算。比较运算符用于比较两个值的大小关系,包括等于、大于、小于等。逻辑运算符用于处理布尔值,比如与、或、非等。赋值运算符用于将一个值赋给一个变量。 4. 控制流程 程序中常见的控制流程结构,包括条件判断和循环结构。 答案:程序中常见的控制流程包括条件判断和循环结构。条件判 断结构用于根据某个条件的真假来决定执行不同的代码段。常见的条 件判断结构有if语句和switch语句。循环结构用于反复执行某段代码,直到满足某个条件才停止。常见的循环结构有while循环、do-while循 环和for循环。 5. 函数和模块 函数和模块的定义和使用方法,函数的参数传递和返回值。 答案:函数是一段封装了特定功能的代码块,可以被反复调用。 函数可以接受参数,并返回一个值。定义函数时需要指定函数名和函 数体,函数名用于标识函数名称,函数体是一段代码块,实现特定的 功能。函数可以接受多个参数,这些参数可以传递给函数体,函数体 可以使用这些参数进行处理。函数也可以返回一个值,用于向调用函 数的地方返回结果。

程序设计基础习题及答案

程序设计基础习题及答案 一、简介 程序设计是计算机科学中一门基础课程,它教授学生如何有效地解决问题并以计算机程序的形式实现。为了帮助学习者更好地理解和应用程序设计知识,本文将介绍一些常见的程序设计习题,并提供相应的答案。 二、习题与答案 1. 习题:编写一个程序,计算并输出给定数值n的阶乘。 答案: #include using namespace std; int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } } int main() {

int n; cout << "请输入一个整数n:"; cin >> n; cout << n << "的阶乘为:" << factorial(n) << endl; return 0; } 2. 习题:编写一个程序,判断给定年份是否为闰年。 答案: #include using namespace std; bool isLeapYear(int year) { if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) { return true; } else { return false; } } int main() { int year;

cout << "请输入一个年份:"; cin >> year; if (isLeapYear(year)) { cout << year << "年是闰年。" << endl; } else { cout << year << "年不是闰年。" << endl; } return 0; } 3. 习题:编写一个程序,从1开始打印到给定的正整数n,但是对于3的倍数打印“Fizz”,对于5的倍数打印“Buzz”,对于同时是3和5的倍数打印“FizzBuzz”。 答案: #include using namespace std; void fizzBuzz(int n) { for (int i = 1; i <= n; i++) { if (i % 3 == 0 && i % 5 == 0) { cout << "FizzBuzz ";

程序设计基础习题及参考答案

程序设计基础习题及参考答案 习题及参考答案 1 单项选择题: (1)下列哪个符号是合法的变量名? ( ) A .VB123 B .Abs C .99Ji D .x\y 答案: 选择A 。其他的:Abs 是Visual Basic 的关键字,99Ji 以数字开头,x\y 使用了整除运算符”\”,都是非法的。 (2)Visual Basic 中的数据也可以以十六进制或八进制表示,十六进制数据以()符号开头,八进制数据以()符号开头。 A.$E B.$H C.&O D.&H 答案:D C (3)如果X 是一个正实数,对X 的第三位小数四舍五入的表达式是( ) A .0.01*Int(x+0.005) B. 0.01*Int(100*(x+0.005)) C. 0.01*Int(100*(x+0.05)) D. 0.01*Int(x+0.05) 答案: 选择B 。x 是一个正实数,要保留n 位小数,第n+1位四舍五入的数字公式是: Int(x*10n +0.5)/10n 因此,本题应该选择B 。 (4)数学式子10sin25°写成Visual Basic 表达式是 ( ) A .10Sin25 B .10* Sin(25) C .10*Sin(25°) D .10*Sin(25*3.14/180) 答案:

选择D 。其他的选项:A 、C 属于语法错误,B 中Sin(25)计算的是25弧度的正弦值,而不是sin25°的值,要将度数转换为弧度的公式是:弧度=度数*180/ 。 (5)下列哪组语句可以将变量A 、B 的值互换? ( ) A .A=B:B=A B. A=A+B:B=A-B:A=A- B C. A=C:C=B:B=A D. A=(A+B)/2:B=(A-B)/2 答案: 选择B 。应该对每个选项内的赋值语句进行分析,判断其运行结果。下面仅对B 选项的三条语句的作用分析如下: ◆ A=A+B ‘将变量A 和变量B 相加后赋给变量A ,此时A 中存放的是和数 ◆ B=A-B ‘由于A 中存放的是和数,A-B 的值就是原先A 中的值,赋给变量B ,B 的 值就是原先A 中的值 ◆ A=A-B ‘由于A 中存放的是和数,B 的值就是原先A 中的值,A-B 的值就是原先B 中的值,赋给变量A ,A 的值就是原先B 中的值。这样达到了交换目的。 实际上,在引用第三个变量的情况下,将变量A 、B 的值互换常用如下的语句: T=A:A=B:B=T (6)Visual Basic 中不存在下列哪一种数据类型? ( ) A 字符串类型 B 日期类型 C 逻辑类型 D 指针类型答案: 选择D 。在Visual Basic 中不存在指针(地址)类型,而在C++等语言中有指针类型。(7)把数值型转换为字符串型需要使用下列哪一个函数? ( ) A Val B Str C Asc

程序设计基础练习题(全部有答案版)

一、单项选择题(每小题2分,共20分) 第一章 D 1.下列说法中错误的是()。 A、程序的执行总是从主函数开始 B、主函数可以调用任何非主函数的其它函数 C、任何非主函数可以调用其它任何非主函数 D、程序可以从任何非主函数开始执行 C 2.若a=4,b=7,则输出4*7=28的语句是()。 A、printf(“a*b=%d\n”a+b); B、 printf(“a*b=%d\n”,a*b); C、printf(“%d*%d=%d\n”,a,b,a*b); D、 printf(“%d*%d=%d\n”,a+b); 第三章 C 1. C语言中int型数据占2个字节,则long型数据占(C ) 个字节。 A、1 B、2 C、4 D、8 D 2.若C中int型数据占2个字节,则double型数据占(D )个 字节。 A、1 B、2 C、4 D、8 B 3.若a为整型变数,则以下语句(B )。 a=-2L; printf(“%d\n”,a); A、赋值不合法 B、输出-2 C、输出不确定值 D、输出 2 D 4. 若int型数据占2个字节,则下列语句的输出为(D )。 int k=-1; printf(“%d,%u\n”,k,k); A、-1,-1 B、-1,32767 C、-1,32768 D、-1,65535 B 5. 下列程序的输出是(B )。 #include main() {printf(“%d\n”,null);} A、0 B、变量无定义 C、-1 D、1 C 6.若x为float型变数,则以下语句: x=223.82748;

printf("%6.2f\n",x); 运行结果为(C )。 A、223.8 B、223.82 C、223.83 D、223.827 D 7. 设有语句int a=3;则执行语句a+=a-=a*a 后,变量a 的值是(D )。 A、3 B、0 C、9 D、-12 第四章 A 1. 执行语句:a=5,b=8;printf(“%d\n”, c=a/b); 后输出的值为(A )。 A、0 B、0.6 C、0.625 D、0. B 2. 下列语句(B )。 int k=8567; printf(“|%06d|\n”,k); A、输出格式描述符不合法 B、输出为|| C、输出为|8567 | D、输出为|-08567| C 3. 下列语句(C )。 int k=8567; printf(“|%-06d|\n”,k); A、输出格式描述符不合法 B、输出为|| C、输出为|8567 | D、输出为|-08567| C 4. 若ch为字符型,k为整,则执行下列语句 后的输出为(C )。 ch=’a’; k=12; printf(“%x,%o,”,ch,ch,k); printf(“k=%%d\n”,k) A、因变量类型与格式描述符的类型不匹配,输出无定值; B、输出项与格式描述符个数不符,输出为0或不定值; C、61,141,k=%d; D、61,141,k=%12 D 5. 若k,g为int型变数,则下列语句的输出 为(D )。 k=017; g=111; printf(“%d,%x\n”,++k,g++); A、15,6f B、16,70 C、15,71 D、16,6f

程序设计基础练习题及答案

〖程序设计基本〗练习题3 一、单选题(30分) 1.Java语言是( )。 A.面向问题旳解释型高档编程语言 B.面向机器旳低档编程语言 C.面向过程旳编译型高档编程语言 D.面向对象旳解释型高档编程语言 2.下列旳变量定义中,错误旳是( )。 A) int i; B) int i=Integer.MAX_V ALUE; C) static int i=100; D) int 123_$; 3.如下旳变量定义语句中,合法旳是( )。 A) float $_*5= 3.4F; B) byte b1= 15678; C) double a =Double. MAX_V ALUE; D) int _abc_ = 3721L; 4.如下字符常量中不合法旳是( )。 A) '|' B) '\'' C) "\n" D) '我' 5.若如下变量均已对旳定义并赋值,下面符合Java语言语法旳语句是( )。 A) b = a!=7 ; B) a = 7 + b + c=9; C) i=12.3* % 4; D) a = a + 7 = c + b; 6.下列程序段执行后t5旳成果是( )。 int t1 = 9, t2 = 11, t3=8; int t4,t5; t4 = t1 > t2 ? t1 : t2+ t1; t5 = t4 > t3 ? t4 : t3; A) 8 B) 20 C) 11 D) 9

7.设a, b, c, d 均为int 型旳变量,并已赋值,下列体现式旳成果属于非逻辑值旳是( )。 A) a!=b & c%d < a B) a++ = =a+b+c+d C) ++a*b--+d D) a+b>=c+d 8.执行下列程序段后,b, x, y旳值分别是( )。 int x=6,y=8; boolean b; b=x>y&&++x==--y; A) true , 6, 8 B) false , 7, 7 C) true, 7, 7 D) false, 6, 8 9.如下由do-while语句构成旳循环执行旳次数是( )。 int k = 0; do { ++k; }while ( k < 1 ); A) 一次也不执行B) 执行1次 C) 无限次D) 有语法错,不能执行 10.下列语句序列执行后,x 旳值是( )。 int a=3, b=4, x=5; if( ++a==b ) x=++a*x; A) 35 B) 25 C) 20 D) 5 11.下列语句序列执行后,k 旳值是( )。 int i=6,j=8,k=10,m=7; if(i>j||m

程序设计实训基础题和答案

程序设计实训基础题和答案 1、有一串三色珠子,由左到右按照两个红珠子,三个黄珠子、一个蓝珠子的规律串起来, 编写程序,输入珠子自左数的位置,显示珠子的颜色。 #include main() { int a,c; printf("Input a:"); scanf("%d",&a); c=a%6; switch(c) { case 0:printf("蓝色\n");break; case 1:printf("红色\n");break; case 2:printf("红色\n");break; case 3:printf("黄色\n");break; case 4:printf("黄色\n");break; case 5:printf("黄色\n");break; } } 2、假设手机有两种收费方式,第一种是每分钟收0.6元,无月租,另一种是每分钟收0.4 元,再收50元月租费,输入一个月打电话的时间(分钟),判断哪一种更合适。 #include main() {int a=0; printf("Input a:"); scanf("%d",&a); if (a<250) printf("第一种合适");

if (a>250) printf("第二种合适"); if(a==250) printf("两种都可以"); } 3、假设儿子今年8岁,父亲35岁,多少年后,父亲的年龄是儿子年龄的两倍?到那时父 子年龄各是多少?编写程序进行计算。 #include main() { int father=35,son=8,n=0; while(father!=son*2) {father=father++; son=son++; n=n+1;} printf("%d年后,父亲%d岁,儿子%d岁",n,father,son);} 4、编写程序,输入两个字符串,并将其中较小的字符串连接到大的字符串后面。 #include #include main() { char a[50]="",b[50]=""; gets(a);gets(b); if(strcmp(a,b)>0) { strcat(a,b); puts(a); } if(strcmp(a,b)<0) { strcat(b,a); puts(b);

程序设计基础试题(附答案)

程序设计基础复习题 一、单项选择 1、一个完好的计算机系统应当包含() A、系统软件和应用软件 B、计算机及其外面设施 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的观点是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字办理软件但没有安装专用数据办理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936 年 B、1946 年 C、1956 年 D、1970 年 4、CASE的含义是() A、计算机协助设计 B、计算机协助制造 C、计算机协助教课 D、计算机协助软件工程 5、目前宽泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、今世计算机的系统构造称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设施 B、输出设施 C、储存设施 D、计算设施 8、下边 4 句话中,最正确的表述是() A、程序 =算法 +数据构造 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最重点的要素

9、计算机能直接履行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目口号言 10、解说程序的功能是() A、将高级语言程序变换为目标程序 B、将汇编语言程序变换为目标程序 C、解说履行高级语言程序 D、解说履行汇编语言程序 11、下边 4 种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是 C语言的基本数据种类是() A、int B、double C、char D、bool 13、在 C 语言中,为了求两个整数相除以后获得的余数,能够使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑构造分为() A、纯属构造和非线性构造 B、次序构造和非次序构造 C、树型构造和图型构造 D、链式构造温次序构造 15、用链表表示纯属表的长处是() A、便于随机存取 B、便于插入和删除操作 C、花销的储存空间较次序储存少 D、元素的物理次序与逻辑次序同 样16、栈的最主要特色是() A、先进先出 B、先进后出 C、两头出入 D、一端进一端出 17、下边 4 句结论只有一句是错误的,它是()

相关文档
相关文档 最新文档