文档库 最新最全的文档下载
当前位置:文档库 › 游洪跃的程序设计第5章 习题解答.

游洪跃的程序设计第5章 习题解答.

游洪跃的程序设计第5章 习题解答.
游洪跃的程序设计第5章 习题解答.

第5章习题解答

一、选择题

1.以下叙述中错误的是。

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)在程序执行中,当数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

解析:对于double类型数组,不能直接用数组名对数组进行整体输入或输出。所以选项A的说法是正确的。数组名代表数组所占内存区的首地址,是一个固定指针,其值不可改变,因此选项B也是正确的。在C语言一维数组定义时可以不指定数组长度,由赋初值的初值个数决定数组的长度。因此选项D也是正确的。C语言程序在执行时,不检查数组元素的下标是否越界,如果出现越界,可能会引起系统死机,因此选项C不正确。

答案:C

2.有以下程序:

/* 文件路径名:ex5_1_2\main.c */

#include /* 标准输入/出头文件*/

int main(void) /* 主函数main() */

{

char s[] = "abcde"; /* 定义字符数组*/

s += 2; /* s自加2 */

printf("%d\n", s[0]); /* 输出s[0] */

return 0; /* 返回值0, 返回操作系统*/

}

执行后的结果是。

A)输出字符a的ASCII码B)输出字符c的ASCII码

C)输出字符c D)程序出错

解析:数组s[]的首地址值s是不可改变的,故该程序编译时会出错。

答案:D

3.有以下程序:

/* 文件路径名:ex5_1_3\main.c */

#include /* 标准输入/出头文件*/

int main(void) /* 主函数main() */

{

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = &a[3], *q = p + 2; /* 定义数组及变量*/

printf("%d\n", *p + *q); /* 输出*p + *q之值*/

return 0; /* 返回值0, 返回操作系统*/

}

程序运行后的输出结果是。

A)16 B)10 C)8 D)6

解析:数组a各元素a[0]-a[9]的值依次为1~10,语句“*p=&a[3]”把指针变量p初始化为&a[3],即*p的值为4,指针变量q初始化为“*q=p+2”,所以*q的值为6,从而*p+*q=l0。

答案:B

4.有以下程序:

/* 文件路径名:ex5_1_4\main.c */

#include /* 标准输入/出头文件*/

void Sort(int a[], int n) /* 将a中元素从大到小进行排序*/

{

int i, j, t; /* 定义变量*/

for (i = 0; i < n - 1; i++)

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

if (a[i] < a[j])

{ t = a[i]; a[i] = a[j]; a[j] = t; }

}

int main(void) /* 主函数main() */

{

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, i; /* 定义数组及变量*/

Sort(a + 2, 5);

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

printf("%d,", a[i]); /* 输出a[i] */

printf("\n"); /* 换行*/

return 0; /* 返回值0, 返回操作系统*/

}

程序运行后的输出结果是。

A)1,2,3,4,5,6,7,8,9,10 B)1,2,7,6,3,4,5,8,9, 10,

C)1,2,7,6,5,4,3,8,9,10 D)1,2,9,8,7,6,5,4,3, 10,

解析:函数Sort()的功能是将数组a中的元素按照从大到小的顺序排列。但主函数调用Sort()时,实参是a+2和5,即是将数组a中a[2]-a[6]共5个元素进行从大到小的排序。所以得到的输出结果应该是1,2,7,6,5,4,3,8,9,10。

答案:C

5.以下数组定义中错误的是。

A)int x[][3] = {0}; B)int x[2][3] = {{1, 2}, {3, 4}, {5, 6}};

C)int x[][3] = {1, 2, 3}, {4, 5, 6}}; D)int x[2][3] = {1, 2, 3, 4, 5, 6};

解析:二维数组赋初值时,第一个维数,即行数可以省略,但是列数不能省略。因此选项A, C正确。选项D是按数据在二维数组中的顺序初始化。在选项B中,行维数的初始化格式跟定义的维数不一致,为错误选项。

答案:B

6.有以下程序:

/* 文件路径名:ex5_1_6\main.c */

#include /* 标准输入/出头文件*/

int main(void) /* 主函数main() */

{

int i, t[][3] = {9, 8, 7, 6, 5, 4, 3, 2, 1}; /* 定义变量及数组*/

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

printf("%d", t[2 - i][i]); /* 输出元素值*/

printf("\n"); /* 换行*/

return 0; /* 返回值0, 返回操作系统*/

}

程序的执行后的输出结果是。

A)753 B)357 C)369 D)751

解析:定义二维数组时第一维的长度可以不指定,该程序中t[][3]通过赋初值等价于t[3][3],并且其数组按行进行赋值,通过for循环输出的分别是t[2][0]、t[1][1]和t[0][2]。

答案:B

7.若有语句“char *line[5];”,以下叙述中正确的是。

A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量

B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C)定义line是一个指针数组,语句中的*号称为取址运算符

D)定义line是一个指向字符型函数的指针

解析:在语句“char *line[5];”中,遵照运算符的优先级,[]的优先级高于*号,因此line 先与[]结合,构成一个数组,数组的基类型为“char *”,所以line为指针数组,它的每个元素都是基类型为char的指针。所以选项A叙述正确。

答案:A

8.有以下程序:

/* 文件路径名:ex5_1_8\main.c */

#include /* 标准输入/出头文件*/

int main(void) /* 主函数main() */

{

int a[3][3], *p, i; /* 定义数组及变量*/

p = &a[0][0]; /* p指向数组a的首元素*/

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

p[i] = i; /* 为p[i]赋值*/

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

printf("%d ", a[1][i]); /* 输出a[1][i] */

printf("\n"); /* 换行*/

return 0; /* 返回值0, 返回操作系统*/

}

程序运行后的输出结果是。

A)0 1 2 B)1 2 3 C)2 3 4 D)3 4 5

解析:p指向二维数组a的首元素,而二维数组是按行存放的。因此“for(i=0;i<9;i++) p[i]=i;”的结果是等价于a[3][3]={0,1,2,3,4,5,6,7,8},也就是a[3][3]={{10,1,2},{3,4,5},{16.7,8}}。因此a[1][i](i=0,1,2)的结果是3, 4, 5。

答案:D

9.若有定义语句“int a[2][3], *p[3];”,则以下语句中正确的是。

A)p[0]=a; B)p[0]=a; C)p[0]=&a[1][2]; D)p[1]=&a

解析:因为*p[3]定义成指针数组,指针数组中的任何元素都是基类型为int的指针,只有选项B是正确的。

答案:B

10.设已有定义“float x;”,则以下对指针变量p进行定义且赋初值的语句中正确的是。

A)float *p=1024; B)int *p=(float)x;

C)float p=&x; D)float *p=&x;

解析:指针的值是变量的地址而不能是数值常量,所以选项A错;选项B同样是将float 类型的值赋给指针而不是地址,所以选项B也错。定义指针变量前面必须有星号(*),所以选项C不正确。

答案:D

11.若有定义“short int a[]={10,20,30}, *p=&a;”,当执行“p++;”后,下列说法错误的是。

A)p向高地址移了一个字节B)p向高地址移了一个存储单元

C)p向高地址移了两个字节D)p与a+l等价

解析:“*p=&a”将数组a[]的首地址赋给指针p,通过对指针变量加上一个整数可以移动指针,移动的单位为存储单元,short int型变量在存储器中占两个字节。

答案:A

12.有以下程序:

/* 文件路径名:e5_1_12\main.c */

#include /* 标准输入/输出头文件*/

int main(void) /* 主函数main() */

{

int a = 1, b = 3, c = 5; /* 定义变量*/

int *p1 = &a, *p2 = &b, *p = &c; /* 为指针变量赋值*/

*p = *p1 * (*p2); /* 修改p2指向的变量的值*/

printf("%d\n", c); /* 输出c */

return 0; /* 返回值0, 返回操作系统*/

}

执行后的输出结果是。

A)1 B)2 C)3 D)4

解析:指针p1指向变量a,指针p2指向变量b,指针p指向变量c,“*p = *p1 * (*p2);”等价于“c=a*b”,故正确选项为C。

答案:C

13.己定义以下函数:

int f(int *p)

{ return *p; }

f()函数返回值是。

A)不确定的值B)一个整数

C)形参p中存放的值D)形参p的地址值

解析:p中存放的是地址值,*p间接引用了p指向的整数值。因此返回一个整数。

答案:B

14.己有定义“char a[] = "xyz", b[] = {'x', 'y', 'z'};”,以下叙述中正确的是。

A)数组a和b的长度相同B)a数组长度小于b数组长度

C)a数组长度大于b数组长度D)上述说法都不对

解析:对于定义“char a[] = "xyz", b[] = {'x', 'y', 'z'};”,由于字符串"xyz"串长为3,连同隐含的结束符'\0 ',占4个字节,所以a数组的长度为4。而b数组由单个字符赋初值,个数是3,因此b数组长度为3。

答案:C

15.有以下程序:

/* 文件路径名:ex5_1_15\main.c */

#include /* 标准输入/输出头文件*/

int main(void) /* 主函数main() */

{

char ch[] = "uvwxyz", *pc; /* 定义字符数组与字符指针*/

pc = ch; /* pc指向字符数组ch的首字符*/

printf("%c\n", *(pc + 5)); /* 输出*(pc+5) */

return 0; /* 返回值0, 返回操作系统*/

}

程序运行后的输出结果是。

A)z B)0 C)元素ch[5]地址D)字符y的地址

解析:字符指针pc指向字符串数组ch的的首字符,*(pc+5)就是pcI5l的值。

答案:A

16.有以下程序:

/* 文件路径名:ex5_1_16\main.c */

#include /* 标准输入/输出头文件*/

int main(void) /* 主函数main() */

{

char s[] = "159", *p; /* 定义数组与指针*/

p = s; /* p指向s的首字符*/

printf("%c", *p++); /* 输出*p++ */

printf("%c\n", *p++); /* 输出*p++ */

return 0; /* 返回值0, 返回操作系统*/

}

程序运行后的输出结果是。

A)15 B)16 C)12 D)59

解析:数组s中存放字符串"159", p指向s的首字符。因此语句"printf("%c",*p++);”输出的是字符'1',输出后p加1指向下一个字符'5',下一个“peintf(.1%c",*p++);”输出的是字符'5'。

答案:A

17.若要求从键盘读入含有空格字符的字符串,应使用函数。

A)puts() B)gets() C)getchar() D)scanf()

解析:函数puts()是从屏幕输出一个字符。getchar()从键盘读入一个字符。scanf()是格式化输入函数,空格字符被用于多个数据输入的分隔符,含有空格的字符串会被截断。gets()用于字符串的输入,并且以回车键为结束符。

答案:B

*18.对于长度为n的查找表进行顺序查找,在最坏情况下所需要的比较次数为。

A)log2n B)n/2 C)n D)n+l

解析:如果查找表中的第一个元素就是要查找元素,则只需做一次比较就查找成功;如果被查找的元素是查找表中的最后一个元素,或者被查找的元素根本就不在查找表中,则需要与查找表中所有的元素进行比较,可知对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。

答案:C

*19.冒泡排序在最坏情况下的比较次数是。

A)n(n+l )/2 B)nlog2n C)n(n-1)/2 D)n/2

解析:如果查找表的长度为n ,则在最坏情况下,冒泡排序需要经过n-1趟从前往后扫描,每趟扫描需要的比较次数依次是n-1,n-2,…,1,需要总比较次数为n(n-1)/ 2。

答案:C

二、填空题

1.设有定义语句“int a[][3] = {{0}, {1}, {2}};”,则数组元素a[1][2]的值为。

解析:二维数组中当某行一对花括号内的初值个数小于该行中元素的个数时,系统将自动给该行后面的元素补初值0,由此可见数组a[1][2]=0。

答案:0

2.以下程序中,LineMax ()函数的功能是求3行4列二维数组每行元素中的最大值,请填空。

/* 文件路径名:ex5_2_2\main.c */

#include /* 标准输入/输出头文件*/

void LineMax(int m, int n, int a[][4], int *bar)

{

int i, j, x; /* 定义变量*/

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

{

x = a[i][0]; /* 第i行的首元素*/

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

if (x < a[i][j]) /* 如果x小于第i行的j号元素a[i][j] */

x = a[i][j]; /* 则将a[i][j]赋给x */

= x; /* x为第i行的最大值*/

}

}

int main(void) /* 主函数main() */

{

int a[3][4] = {{12, 41, 36, 28}, {19, 33, 15, 27}, {3, 27, 19, 1}}, b[3], i;

LineMax(3, 4, a, b); /* 调用LineMax()函数求每行的最大值*/

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

printf("%4d", b[i]); /* 输出每行的最大值*/

printf("\n"); /* 换行*/

return 0; /* 返回值0, 返回操作系统*/

}

解析:函数LineMax()的功能是求出二维数组每行元素中的最大值。对于3行4列的二维数组将有3个最大值存放到数组bar[]中。x存放的是每行的最大值,求出每行的最大值x 后,应该将x赋值给bar[i]。因此此处填空应该是:bar[i]。

答案:bar[i]

3.己知“int a = 3;”,a的地址为1001,&a= 。

解析:变量的地址可以通过运算符&来得到,而a的存储单元地址是1001,所以&a=1001。

答案:1001

4.以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕,请填空。

/* 文件路径名:ex5_2_4\main.c */

#include /* 标准输入/输出头文件*/

int main(void) /* 主函数main() */

{

int x, y, z, max, *px = &x, *py = &y, *pz = &z, *pmax = &max; /* 定义变量*/

scanf("%d%d%d", &x, &y, &z); /* 输入x,y,z */

;

if (*pmax < *py) /* 如果*py更大*/

*pmax = *py; /* 则将*py赋给*pmax */

if (*pmax < *pz) /* 如果*pz更大*/

*pmax = *pz; /* 则将*pz赋给*pmax */

printf("max=%d\n", max); /* 输出最大值*/

return 0; /* 返回值0, 返回操作系统*/

}

解析:程序中定义了4个指针变量,px指向x,py指向y,pz指向z,pmax指向max,if语句将pmax指向的存储单元的值与*py与*pz两个数值比较,可知*px代表x的值,可知初始时假设x中的值最大,就让pmax指向x。

答案:*pmax = *px或*pmax = x或max = *px或max = x

5.以下程序的输出结果是。

/* 文件路径名:ex5_2_5\main.c */

#include /* 标准输入/输出头文件*/

#include /* 字符串头文件*/

int main(void) /* 主函数main() */

{

printf("%d\n", strlen("IBM\n012\1\\")); /* 输出字符串的长度*/

return 0; /* 返回值0, 返回操作系统*/

}

解析:转义符'\n'、'\1'和'\\'都会别只算一个字符,所以"IBM\n012\1\\"的字符数为9。

答案:9

6.以下程序的输出结果是。

/* 文件路径名:e5_2_6\main.c */

#include /* 标准输入/输出头文件*/

#include /* 字符串头文件*/

int main(void) /* 主函数main() */

{

char a[] = {'\1', '\2', '\3', '\4', '\0'}; /* 定义字符数组*/

printf("%d,%d\n", sizeof(a), strlen(a)); /* 输出字符串所占空间大小与长度*/

return 0; /* 返回值0, 返回操作系统*/

}

解析:strlen()求字符串的实际长度,不包括'\0',sizeof()是求数组a所占的字节,包括'\0'。

答案:5,4

*7.对长度为10的查找表表进行冒泡排序,最坏情况下需要比较的次数为。

解析:如果查找表的长度为10 ,则在最坏情况下,冒泡排序需要经过n-1趟从前往后扫描,每趟扫描需要的比较次数依次是9,8,…,1,需要总比较次数为36。

答案:45

三、编程题

1.求一个4×4整型矩阵对角线元素之和。

参考程序:

/* 文件路径名:ex5_3_1\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

int Sum(int a[4][4]) /* 返回二维数组a对角线元素之和*/

{

int s = 0, i; /* 定义变量*/

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

{ /* 求对角线元素之和*/

s = s + a[i][i]; /* 累加主对角线*/

s = s + a[i][3 - i]; /* 累加副对角线*/

}

return s; /* 返回对角线元素之和*/

}

int main(void) /* 主函数main() */

{

int a[4][4] = {

{ 1, 2, 3, 4},

{ 5, 6, 7, 8},

{ 9,10,11,12},

{13,14,15,16}

}; /* 定义二维数组*/

printf("对角线元素之和为%d\n", Sum(a)); /* 输出二维数组a对角线元素之和*/

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/

return 0; /* 返回值0, 返回操作系统*/

}

2.将一个数组中的值按逆序重新存放,例如,原来的顺序为6,8,5,2,9。要求重排为9,2,5,8,6。

参考程序:

/* 文件路径名:ex5_3_2\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

void Reverse(int a[], int n) /* 将数组a中的值按逆序重新存放*/

{

int i, j, tem; /* 定义变量*/

for (i = 0, j = n - 1; i < j; i++, j--)

{ /* 交换a[i]与a[j] */

tem = a[i]; a[i] = a[j]; a[j] = tem; /* 循环赋值交换a[i]与a[j] */

}

}

int main(void) /* 主函数main() */

{

int a[] = {6, 8, 5, 2, 9}, n = 5, i; /* 定义数组及变量*/

printf("原数组:");

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

printf("%d ", a[i]); /* 依次输出各元素之值*/

printf("\n"); /* 换行*/

Reverse(a, n); /* 将数组a中的值按逆序重新存放*/

printf("逆序后:");

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

printf("%d ", a[i]); /* 依次输出各元素之值*/

printf("\n"); /* 换行*/

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/

return 0; /* 返回值0, 返回操作系统*/

}

3.从键盘上输入三行文字,每行文字最多有80个字符,要求分别统计其中的英文大写字母、小写字母、数字、空格和其它字符的个数。

参考程序:

/* 文件路径名:ex5_3_3\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

#include /* 包含字符串库函数的信息*/

int main(void) /* 主函数main() */

{

char str[81]; /* 存储一行字符*/

unsigned int i, j, n1 = 0, n2 = 0, n3 = 0, n4 = 0, n5 = 0; /* 定义变量*/

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

{ /* 输入并处理三行字符*/

gets(str); /* 输入一行字符str */

for (j = 0; j < strlen(str); j++)

{ /* 统计字符*/

if (str[j] >= 'A' && str[j] <= 'Z')

{ /* 大字字母*/

n1++; /* 对大写字母进行记数*/

}

else if (str[j] >= 'a' && str[j] <= 'z')

{ /* 小字字母*/

n2++; /* 对小写字母进行记数*/

}

else if (str[j] >= '0' && str[j] <= '9')

{ /* 数字*/

n3++; /* 对数字进行记数*/

}

else if (str[j] == ' ')

{ /* 空格*/

n4++; /* 对空格进行记数*/

}

else

{ /* 其它字符*/

n5++; /* 对其它字符进行记数*/

}

}

}

printf("含%u个大写字母\n", n1); /* 输出大写字母个数*/

printf("含%u个小写字母\n", n2); /* 输出小写字母个数*/

printf("含%u个数字\n", n3); /* 输出数字个数*/

printf("含%u个空格\n", n4); /* 输出空格个数*/

printf("含%u个其它字符\n", n5); /* 输出其它字符个数*/

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/

return 0; /* 返回值0, 返回操作系统*/

}

4.编写一个程序,将字符数组s2中全部字符复制到字符数组s1中,要求不使用strcpy()函数,在复制时,'\0'也要复制过,'\0'后面的字符不再复制。

参考程序:

/* 文件路径名:ex5_3_4\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

void StringCopy(char s1[], char s2[])/* 将字符数组s2中全部字符复制到字符数组s1中,'\0'也要复制过*/ {

int i = 0; /* 定义变量*/

while ((s1[i] = s2[i]) != '\0') i++; /* 逐个复制字符*/

}

int main(void) /* 主函数main() */

{

char s1[80], s2[] = "this is a test!"; /* 定义字符数组*/

StringCopy(s1, s2); /* 将s2复制到s1 */

puts(s1); /* 输出s1 */

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/

return 0; /* 返回值0, 返回操作系统*/

}

5.编写一个程序将两个字符串连接起来,要求不用strcat()函数。

参考程序:

/* 文件路径名:ex5_3_5\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

char *StrCat(char s1[], char s2[]) /* 将s2中的字符串连接到s1 中字符串的后面*/ {

int i = 0, j = 0; /* 定义变量*/

while (s1[i] != '\0') i++; /* 使s1[i] == '\0' */

while ((s1[i + j] = s2[j]) != '\0') j++; /* 将s2字符串连接到s1中字符串的后面*/

return s1; /* 返回字符s1的首地址*/

}

int main(void) /* 主函数main() */

{

char s1[80] = "This ", s2[] = "is a test!"; /* 定义字符数组*/

StrCat(s1, s2); /* 将s2连接到s1 */

puts(s1); /* 输出s1 */

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/

return 0; /* 返回值0, 返回操作系统*/

}

6.编写一个程序求字符串的长度,要求不使用strlen()函数。

参考程序:

/* 文件路径名:ex5_3_6\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

unsigned int StrLen(char s[]) /* 返回将s中的字符串的长度*/

{

int i = 0; /* 定义变量*/

while (s[i] != '\0') i++; /* 使s[i] == '\0',i的值即为s的长度*/

return i; /* 返回i */

}

int main(void) /* 主函数main() */

{

char s[] = "This is a test!"; /* 定义字符数组*/

printf("\"%s\"的长度是%u\n", s, StrLen(s)); /* 输出结果*/

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/

return 0; /* 返回值0, 返回操作系统*/

}

7.编写一个函数,对含n个元素的整型数组a求最大值与最小值,并通过形参传回调用函数,并要求编写测程序。

参考程序:

/* 文件路径名:ex5_3_7\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

void MaxMin(int a[], int n, int *pMax, int *pMin)/* 求数组a求最大值与最小值,并通过形参传回调用函数*/

{

int i; /* 定义变量*/

*pMax = *pMin = a[0]; /* 初始化*pMax, *pMin */

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

{ /* 逐个比较a[i] */

if (a[i] > *pMax) *pMax = a[i]; /* a[i]更大,a[i]为当前的最大值*/

if (a[i] < *pMin) *pMin = a[i]; /* a[i]更小,a[i]为当前的最小值*/ }

}

int main(void) /* 主函数main() */

{

int a[] = {1, 7, 0, 5, 80, -20}, n = 6, max, min; /* 定义数组及变量*/

MaxMin(a, n, &max, &min); /* 求a的最大值及最小值*/

printf("最大值为%d, 最小值为%d\n", max, min); /* 输出结果*/

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/ return 0; /* 返回值0, 返回操作系统*/

}

8.编写一个函数,求二维整型数组所有元素之平方和,并要求编写测试程序。

参考程序:

/* 文件路径名:ex5_3_8\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

#define M 3 /* 定义常量*/

#define N 4 /* 定义常量*/

int SquareSum(int a[M][N]) /* 求二维数组各元素之平方和*/

{

int i, j, s = 0; /* 定义变量*/

for (i = 0; i < M; i++) /* 行*/

for (j = 0; j < N; j++) /* 列*/

s = s + a[i][j] * a[i][j]; /* 累加求平方和*/

return s; /* 二维数组各元素之平方和*/

}

int main(void) /* 主函数main() */

{

int a[M][N] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; /* 定义数组*/

printf("平方和为:%d\n", SquareSum(a)); /* 输出二级数组a各元素之平方和*/

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/ return 0; /* 返回值0, 返回操作系统*/

}

*9.编写程序,判断一个5位正整数是不是回文数,回文数从读向左读与从右向左读都相同的数,例如12321就是回文数,要求将先将5位数的各位数字取出用一个数组存储,然后对数组中的各元素进行判断。

参考程序:

/* 文件路径名:ex5_3_9\main.c */

#include /* 包含库函数printf()所需要的信息*/

#include /* 包含库函数system()所需要的信息*/

int main(void) /* 主函数main() */

{

int m, n, a[5], i; /* 定义变量及数组*/

printf("请输入一个五位正整数:"); /* 输入提示*/

scanf("%d", &n); /* 输入n */

m = n; /* 用m暂存n */

for (i = 4; i >= 0; i--)

{

a[i] = n % 10; /* 当前位的数字值*/

n = n / 10; /* 去掉当前位后的数*/

}

for (i = 0; i < 5 / 2; i++)

{

if (a[i] != a[4 - i])

{ /* 两端对应数字不相等,不是回文*/

printf("%d不是回文\n", m); /* 输出结果*/

break;

}

}

printf("%d是回文\n", m); /* 输出结果*/

system("PAUSE"); /* 调用库函数system( ),输出系统提示信息*/

return 0; /* 返回值0, 返回操作系统*/

}

高中信息技术《算法与程序设计》试题

高中信息技术《算法与程序设计》试题 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句 For x=1 to 100 step 2 …… Next x 中,x能达到的最大值是() A、100 B、99 C、98 D、97 11、在下列选项中,不属于VB的对象的是() A、窗体的背景颜色 B、命令按钮 C、文本框 D、标签 12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()

《算法与程序设计》复习题

算法与程序设计 一、选择题部分(100题) 一章一节:了解计算机解决问题的过程 1.用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序答案:B 2.学校要举行运动会,请你设计一个能够对运动员分数自动排序的软件,如果要设计此软件,以下最好的方法和步骤是()。 A、分析问题,编写程序,设计算法,调试程序 B、设计算法,编写程序,提出问题,调试程序 C、提出问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 答案:C 3.下列步骤不属于软件开发过程的是()。 A、任务分析与系统设计 B、软件的销售 C、代码编写与测试 D、软件测试与维护 答案:B 4.用计算机解决问题的步骤一般为()①编写程序②设计算法③分析问题④调试程序。 A.①②③④ B.③④①② C.②③①④ D.③②①④答案:D 5.以下描述中最适合用计算机编程来处理的是()。 A、确定放学回家的路线 B、计算某个同学期中考试各科成绩总分 C、计算100以内的奇数平方和 D、在因特网上查找自己喜欢的歌曲答案:C 6.以下问题中最适合用计算机编程处理的是()。 A、制定本学期的学习计划 B、计算正方形的周长 C、创作一首歌曲 D、求1000以内的所有素数 答案:D 7.由“上车—掏钱—投币”所描述的问题是()。 A、无人售票车投币过程 B、乘公交车过程 C、上车过程 D、下车过程答案:A 一章二节:算法和算法描述 8.下面说法正确的是()。 A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 答案:A 9.算法描述可以有多种表达方法,下面哪些方法不可以描述“水仙花数问题”的算法()。 A.自然语言 B.流程图 C.伪代码 D.机器语言答案:D 10.下面关于算法的说法错误的是()。 A、算法必须有输出 B、算法就是程序 C、算法不一定有输入 D、算法必须在有限步执行后能结束 答案:B 11.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、情况结构 C、流程结构 D、循环结构答案:D 12.算法的三种基本控制结构是分支结构、循环结构和() A、模块结构 B、情况结构 C、流程结构 D、顺序结构答案:D 13.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、循环结构 C、流程结构 D、情况结构答案:B 14.下面关于算法的认识正确的是()。 A、算法就是求解“鸡兔同笼问题” B、算法一定没有输出 C、算法就是计算机程序 D、算法的步骤必须是有限的答案:D

《算法与程序设计》试题带答案

《算法与程序设计》试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE

Java程序设计习题附答案(一)

Java程序设计题库 第一部分绪论 1、下列关于Java语言的特点,描述错误的是(C) A.Java是跨平台的编程语言B.Java支持分布式计算 C.Java是面向过程的编程语言D.Java支持多线程 2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B) A、安全性 B、多线性 C、跨平台 D、可移植 3、Java JDK中调试器的命令是(C)。 A、javac B、java C、jdb D、avah 4、运行jar文件中class文件需要在java命令后面加的参数为(A)。 A、-cp B-g C-d D-verbose 5、下面哪项在java中是不合法的标识符?(C) A、$user B、point C、You&me D、_endline 6、下面关于Java语言说法正确的是(ABCD)。 A、Java语言是面向对象的、解释执行的网络编程语言。 B、Java语言具有可移植性,是与平台无关的编程语言。 C、Java语言可对内存垃圾自动收集。 D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。 7、在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。( B) A、源, HTML B、源, 字节代码 C、字节代码, 源 D、HTML, 字节代码 8、Java的JVM是指(B)。 A、由Java操作的家用设备(通常是一个漂亮的小烤箱) B、Java字节代码的解释程序 C、Java源代码的编译器 D、运行Java 所需的硬件设备 9、在Java中,关于CLASSPA TH环境变量的说法不正确的是(A)。 A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B、编译器用它来搜索各自的类文件。 C、CLASSPATH是一个目录列表。 D、解释器用它来搜索各自的类文件。 10、一个可以独立运行的Java应用程序(D)。

算法与程序设计习题

《算法与程序设计》模块练习题 一、单选题 1、模块化程序设计方法主要通过()来实现。 A.递归算法和递归程序 B.过程和函数的定义和调用 C.程序的循环结构 D.对象答案:B 2、text1.text的含义正确的是()。 A.text1是控件名称,text是控件属性 B.text1是窗体名称,text 是控件 C.text1是控件名称,text是方法 D.text1是控件属性,text是控 件答案:A 3、以下程序段运行后S的值是()。 s = 0 For i = 1 To 14 x = 2 * i - 1 If x Mod 3 = 0 Then s = s + 1 Next i A.0 B.4 C.5 D.14 答案:C 4、数列1,4,7,10,13,……的递推公式为()。 A.f(1)=1;f(n)=n+3 B.f(1)=1;f(n)=n*2-1 C.f(1)=1;f(n)=n*2+1

D.f(1)=1;f(n)=f(n-1)+3 答案:D 5、对于对象及其特征的错误理解是()。 A.对象都具有一个标识自己以区别其他对象的名字。 B.对象都具有自身的属性及其属性值。 C.对象一般只用数据表示属性,但不用代码表示行为。 D.对象都具有自身的行为(操作)。 答案:C 6、VB函数Left ()从字串左端取部分字串,那么Left("Visual Basic 6.0", 8)的值为()。 A.Visual B B.Visual C.Visual Ba D.asic 6.0 答案:A 7、程序段如下: c ="1234" For i = 1 To 4 Print _____, Next 如果要让程序运行后得到如下结果: 1 1 2 12 3 1234 则在下划线处应填入的内容为()。 A.Right(c,i) B.Left(c,i) C.Mid(c,i,1) D.Mid(c,i,i) 答案:B 8、若X = True,执行If X Then X = 0 Else X = 1后X的结果为()。

高二算法与程序设计试题及答案

高二信息技术(算法与程序设计)试题卷 一、单项选择题(每小题2.5分共50分将正确答案填到答题卷相应题号下) 1、一同学想通过程序设计解决“鸡兔同笼”的问题,他制定的如下工作过程中,更恰当的是()。 A、提出问题、设计算法、编写程序、得到答案 B、提出问题、编写程序、运行程序、得到答案 C、编写程序、设计算法、调试程序、得到答案 D、设计程序、提出问题、编写程序、运行程序 2、下列常量说明中,符合语法的是()。 A、CONST color=red B、CONST const=10*5 C、CONST xl:=3.9; D、CONST color=”abcd” 3、下列代数式的Visual Basic表达式是( )。 A、(x^5-cos(29*3.14))/(sqr(exp(x)+log(y))) B、(x^5-cos(29))/(sqr(exp(x)+ln(y))+5) C、(x^5-cos(29*3.14/)/(sqr(exp(x)+ln(y))+5) D、(x^5-cos(0.506))/(sqr(exp(x)+log(y))+5) 4、下列变量名写法错误的是()。 A、abc B、abc123 C、abc_123 D、123abc 5、visual basic程序设计语言是一种()。 A、高级语言 B、汇编语言 C、机器语言 D、数据库语言 6、下列给出的赋值语句中正确的是()。 A、4 = M B、-M =M C、B=A-3 D、x + y = 0 7、下列Visual Basic中,下列()的表达式的值不等于4。 A、int(4.1) B、fix(4.9) C、Abs(int(-3.9)) D、Abs(int(-4.5)) 8、下面程序运行后的输出S结果为()。 i=1 do WHILE i<8 i=i+2:s=2*i+3 loop PRINT s A、17 B、19 C、21 D、23 9、下列Visual Basic中,下列()类型属于字符串型。 A、Integer B、Single C、String D、Boolean 10、在VB中表达式11\3+11 mod 3 的运算结果值是()。 A、3 B、4 C、5 D、6 11、下列程序执行后,整型变量n的值为( )。 n=0: for I=1 to 100: if I mod 4=0 then n=n+1: next I A、5050 B、25 C、26 D、33 12、以下选项中,不是Visual Basic控件的是( )。 A、文本框 B、定时器 C、窗体 D、命令按钮 13、使用Visual Basic编程,我们把工具箱在的工具称为( )。 A、事件 B、工具 C、控件 D、窗体 14、结构化程序设计由三种基本结构组成,下面哪个不属于这三种基本结构()。 A、顺序结构 B、输入、输出结构 C、选择结构 D、循环结构 15、语句if 3*4>=10 then a=1 else a=2 执行后,a的值为()。 A、12 B、10 C、1 D、2 16、下列结果为True的逻辑表达式是( )。 A、Not (3<8) B、(3<9) And (5>10) C、(3<8) And (5<10) D、(3>8) Or (5>10) 17、要交换变量X和Y之值,应使用的语句组是( )。 A、X=Y;Y=Z;Z=X B、C=X;X=Y;Y=C C、X=Y;Y=X D、Z=Y;Y=X;Y=Z 18、以下程序中的循环体执行的次数是()。

Python程序设计习题与答案

《P y t h o n程序设计》习题与参考答案 第1章基础知识 简单说明如何选择正确的Python版本。 答: 在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高反复安装和卸载上。同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。 尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 系列的最高版本(目前是Python )。 为什么说Python采用的是基于值的内存管理模式? 答: Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。 >>> x = 3 >>> id(x) >>> y = 3 >>> id(y) >>> y = 5 >>> id(y) >>> id(x) 在Python中导入模块中的对象有哪几种方式? 答:常用的有三种方式,分别为 ?import 模块名[as 别名] ?from 模块名import 对象名[ as 别名] ?from math import * 使用pip命令安装numpy、scipy模块。 答:在命令提示符环境下执行下面的命令:

pip install numpy pip install scipy 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 答: x = input('Please input an integer of more than 3 digits:') try: x = int(x) x = x else: print(x) except BaseException: print('You must input an integer.') import types x = input('Please input an integer of more than 3 digits:') if type(x) != : print 'You must input an integer.' elif len(str(x)) != 4: print 'You must input an integer of more than 3 digits.' else: print xoin(map(str,result)) x = input('Please input an integer less than 1000:') t = x i = 2 result = [] while True: if t==1: break if t%i==0: (i) t = t/i else: i+=1 print x,'=','*'.join(map(str,result)) 编写程序,至少使用2种不同的方法计算100以内所有奇数的和。 x = [i for i in range(1,100) if i%2==1] print(sum(x)) print(sum(range(1,100)[::2])) 编写程序,实现分段函数计算,如下表所示。

算法与程序设计试题带答案

高一第二学期《算法与程序设计》学分认定试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么”,然后再确定程序“如何做”请问“如何做”是属于用计算机解决问题的哪一个步骤() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、 D、 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句For x=1 to 100 step 2 …… Next x 中,x能达到的最大值是() A、100 B、99 C、98 D、97 11、在下列选项中,不属于VB的对象的是() A、窗体的背景颜色 B、命令按钮 C、文本框 D、标签 12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()A、F1 B、F8 C、F9 D、F12 13、算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法() A、自然语言 B、流程图 C、伪代码 D、机器语言 14、以下不属于非法用户自定义标识符(常量和变量命名)的是() A、8ad B、ad8 C、_a8d D、const 15、已知A,B,C,D是整型变量,且都已有互不相同的值,执行语句B=0;A=C;D=A;D=B;后,其值相等的变量是() A、A,D B、A,C C、C,B D、B,A 16、要交换变量A和B的值,应使用的语句组是( ) A、A=B;B=C;C=A B、C=A;A=B;B=C C、A=B;B=A D、C=A;B=A;B=C 17、VisualBasic中以单引号开头一行文字称为注释,它对程序的运行() A、起一定作用 B、有时候起作用 C、不起任何作用,但是必须的 D、不起任何作用,但能增加程序的可阅读性 18、要使一个命令按钮显示文字“确定”,正确的设置是把该命令按钮的()。 A、属性Font设置为“确定” B、属性.ForeColor设置为“确定” C、属性Caption设置为“确定” D、属性BorderStyle设置为“确定” 19、要从文本框TXTShowOut中输出"中国您好!",代码为( ) A ="中国您好!" B ="中国您好!" C ="中国您好!" D Val=“中国您好!” 20、下列Visual Basic程序段运行后,变量max的值为()。 a=11; b=15; max=a IF b>max Then max =b A、15 B、11 C、15或11都有可能 D、以上都不是 二、阅读程序写结果(第1~2小题每题5分,第3小题10分,共20分) 1、Private Sub Form_Load() N=InputBox(“请输入N的值:”,“输入”) S=1 For i=1 to N S=S*i Next i MsgBox “S=”+Str(s),0,”计算结果” End Sub 当N=5时,运行的结果是__________________。

《算法与程序设计》会考复习题(答案)

《算法与程序设计》模块会考复习题 一.单选题 1. java方法重载时参数不可能出现的情况是____D______。P67 A.参数的个数不同 B.参数的个数相同而参数的类型不同 C.参数不完全对应相同D.参数完全对应相同 2. 运行Java程序需要的工具软件所在的目录是___A_______。P16 A.JDK的bin目录B.JDK的demo目录 C.JDK的lib目录D.JDK的jre目录 3. J_HelloWorld.java 的文件内容如下: class J_HelloWorld { public static void Main(String args[]) M不应大写 { System.out.println(" Hello World "); } } 下面说法正确的是____B______。 A.J_HelloWorld.java无法通过编译,因为main方法的声明方式不对 B.J_HelloWorld.java可以通过编译,但程序运行时出现“程序中没main方法”的异常C.J_HelloWorld.java可以通过编译,但无法运行,因为该文件没有public类 D.J_HelloWorld.java可以通过编译并正常运行,结果输出字符串“Hello World” 4. 逻辑表达式!(3/2==1.5)&& 9<3|| 9>3的运算结果为_____A_______。 P9 A.true B.false C.表达式有错D.条件不足 5. 下列可以将变量x和y的值互换的语句是___B______。P35 A.x=y;y=x; B.z=x;x=y;y=z; C.x=z;z=y;y=x; D. x=(x+y)/2;y=(x-y)/2; 6. 执行完下面程序片段之后,下面结论正确的是___B_____。 P43 int a,b,c; a=1;b=2; c=(a+b)>3 ? a++:b++; A.a的值是2,b的值是3 B.a的值是1,b的值是3 C.a的值是1,b的值是2 D.c的值是false。 7. 下面程序片段输出的是___C_______。应使用关系运算符== int a=3,b=1; if(a=b)

上海高一信息技术算法与程序设计习题集

信息技术算法与程序设计习题集 习题: (1)1<5 and 4>3 or not -1=1 T (2)"a">"b" or 5<6 and 8>=2*4 T (3)假设变量a的值是1,变量b的值是2,变量c的值是3,计算下列表达式的值。 a^3+b*c 7 c mo d b +a 2 int(c/b) >b-a F a0 T a+b>c or b+c>a and c+a>b T 二、算法的一些概念 1.算法的定义:解决问题的确定的有限的步骤。 2.算法的描述:自然语言、流程图描述、计算机程序、伪代码。 3.常量和变量: 变量的特点:取之不尽,赋值即覆盖 变量的命名规则:以字母、数字、下划线组成,必须以字母开头。 变量的类型:整数型(Integer)、实数型(Single)、字符串型(String) 4.算法的三种基本结构:顺序结构、分支结构、循环结构 (1)顺序结构 顺序结构按照自上而下的顺序把每个步骤执行一次。 (2)分支结构(选择结构) 分支结构根据条件决定执行步骤1或步骤2中的算法步骤,判断框有一个入口两个出口,分支结构

单分支语句格式 If <条件> Then <步骤1的语句块> End If 有一个入口,一个出口。 5.算法的特点:可行性、确定性(无二义性)、有穷性、可以没有输入,必须要有输出。 三、算法实例 (一)顺序结构 练习1:输入一个圆的半径,求圆的周长和面积,并输出结果。 练习2:输入一个两位数,交换个位和十位的值,输出结果。 练习3:输入两个变量的值,将两个变量中的值互相交换并输出结果。 双分支语句格式 If <条件> Then <步骤1的语句块> Else <步骤2的语句块> End If 代码: Dim r As Single r = InputBox("输入半径") s = 3.14 * r ^ 2 c = 2 * 3.14 * r Print "周长"; c Print "面积"; s 代码: x = InputBox("请输入") a = Int(x / 10) b = x Mod 10 y = 10 * b + a Print y

C++程序设计试题及答案

C++程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 ++源程序文件扩展名为( A ) A..cpp B..h C..1ib D..obj 2.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是( B ) 3.包含自定义头文件的预处理指令是( D ) A.#define<> B.#include C.#define D.#include"" 4.用于标识十六进制前缀或后缀是( D ) A.元 B.后缀L或e C.前缀零 D.前缀0x 5.设存在整型变量int x,则下列句与其它三项含义不同的是( A ) * p=&x; & p=x; & p=x; &p=x; 6.在定义类成员时,为产生封装性,则需使用哪个关键字( D ) 7.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15; 则执行swap(a,b)后,a、b值分别为( C ) ,10 ,15

,10 ,15 8.函数默认参数在函数原型中说明,默认参数必须放在参数序列的( C) A.前部 B.中部 C.后部 D.两端 9.设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是( B ) m=min(min(15,26),min(15,47)); m=min(15,26,47); m=min(15,min(47,26)); m =min(min(47,26),16); 10.下列函数不能和函数void print(char)构成重载的是(C ) print(int); print(char,char); print(char); print(int,int); 11.在下列成对的表达式中,运算结果类型相同的一对是( D ) /2和/ /和7/2 0和/2 l2.内联函数的特点是( D ) A.减少代码量,加快访问速度 B.减少代码量,减缓访问速度 C.增加代码量,减缓访问速度 D.增加代码量,加快访问速度

2014山东省信息技术学考算法与程序设计试题答案附后讲解

2014山东省信息技术学考算法与程序设计试题答案附后讲解

山东省学考算法与程序设计试题 选择题 1、下列VB表达式中: ⑴Sqr(x) ⑵Text1.text ⑶Command1.caption ⑷"45"+"34" ⑸45+34值为字符串类型的是() A⑴⑵⑶ B⑵⑶⑷ C ⑴⑶⑸ D⑵⑷⑸ 2、如果给出三条线段的长分别为a、b、c,且已知a≤b≤c,要问这三条线段能否构成三角形,仅需下列选项中的哪个判定条件即可?() A 其他选项都不对 B a+c>b C a+b>c D b+c>a 3、VB程序中“Dim n As Integer”这条语句的作用是() A 定义一个事件过程 B 定义一个数据输入方法 C 定义一个变量 D 定义一个数据处理方法 4、关于算法的描述,下列选项中正确的是() A 算法的每一步骤必须有确切的含义 B 算法必须有输入 C 算法的步骤可以是无穷的 D 算法本身就是一种程序设计语言 5、关于算法的描述,正确的是() A同一种算法只能用一种程序语言实现 B算法就是数值计算的方法 C描述算法的方法只有流程图 D算法是描述解决问题的方法和步骤 6、算法的描述方法有多种,下列选项中不适合描述算法的是() A机器语言 B自然语言 C流程图 D伪代码 7、长度分别为a、b、c的三条线段,能够组成三角形的条件是() A a+b>c Or a+c>b Or b+c>a B a+b>c or a+c>b And b+c>a C a+b>c Or a+c>b And b+c>a D a+b>c And a+c>b And b+c>a 8、已知海伦公式:()()() p p a p b p c ---p=1 2 (a+b+c),a、b、c分别为三角形的三条 边长。利用海伦公式求三角形面积的算法属于() A 排序法 B 解析法 C 穷举法 D 查找法 9、以下程序段中循环体执行的次数是() s=0 i=0 Do While s<10 i=i+1 s=s+i*i Loop A 1 B 3 C 2 D 4 10、下列VB表达式中,能正确表达不等式方程|x|>1的解的是() A x>-1 and x<1 B x>-1 or x<1 C x<-1 and x>1 D x<-1 or x>1 11、一元二次方程ax2+bx+c=0(a≠0)的两个实数根分别为: x 1 24 b b ac -+- 2 24 b b ac ---下列表达式正确的是() A x 2=-b-sqr(b^2-4*a*c)/(2*a) B x 1 =(-b+sqr(b^2-4ac))/(2*a)

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

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.wendangku.net/doc/065338819.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.有如下程序:

最新高中信息技术《算法与程序设计》试题精品版

2020年高中信息技术《算法与程序设计》 试题精品版

新课标高中信息技术《算法与程序设计》试题一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是( ) A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句 For x=1 to 100 step 2 ……

高中信息技术算法与程序设计练习题

高中信息技术算法与程序设计(VB)练习题2004年8月20日作者:洪鼎文化中心浏览选项:大中小--> 颜色Black Red Yellow Pink Green Orange Purple Blue Beige Brown Teal Navy Maroon LimeGreen 本一、选择题: 1.下列各组控件都具有Caption属性的是 A.窗体、文本框 B.标签、定时器 C.窗体、标签 D.文本框、定时器 2.下列各组控件具有相同默认事件的是 A.窗体、文本框 B.标签、按钮 C.窗体、标签 D.文本框、按钮 3.下列每个控件都具有的属性是 https://www.wendangku.net/doc/065338819.html, B.Caption C.Font D.Interval 4.下列运算结果中,值最大的是 A.34 B.3/4 C.4 mod 3 D.3 mod 4 〖/表示除,表示整除,mod表示求余数〗 5.以下哪个是合法的变量名 A.Len B.Test@qw C.6cost_1 D.count2s 6.在Visual Basic代码中,将多个语句合并在一行上的并行符是 A. 撇号(') B. 冒号(:) C. 感叹号(!) D. 问号(?) 7.如果要求设置定时器时间间隔为0.5秒钟,那么它的Interval属性值应该是 A.5000 B.500 C.50 D.5 8.下列控件中可设置滚动条是 A.计时器 B.标签 C.文本框 D.按钮 9.下面程序执行的结果是 Private Sub Form_Click() A = "123": B = "456" C = Val(A) + Val(B) 〖val是把字符转化为数值的函数〗 Print C 100 End Sub A.123 B.3 C.5 D.579 10.若要求从文本框中输入密码时在文本框中只显示#号,则应当在此文本框的属性窗口中设置 A. Text属性值为"#" B.Caption属性值为"#" C.password属性值为空"#" D.Passwordchar属性值为"#" 11.下列逻辑运算结果为"true"的是 A.flase or not true B.flase and not true C. true or not true D.true and not true 12.下列控件中可用于接受用户输入文本,又可用于显示文本的是 A.Label 控件 B. TextBox 控件 C. Timer 控件 D. CommandButton 控件 13.以下程序段执行后,整型变量n 的值为 year=2001 n=year4+year400-year100 A. 495 B. 505 C. 500 D. 485 14.下列关于CommandButton 控件的叙述正确的是 A. CommandButton 控件的Caption 属性决定按钮上显示的内容 B. 单击VB应用程序中的按钮,则系统激活按钮控件对应的Change 事件 C. CommandButton 控件的name 属性决定按钮上显示的内容

C语言程序设计习题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是() A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是() A、abc B、12AC C、sun D、 A2 3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是() A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是() A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是() A、% B、/ C、%和/ D、 + 6、以下关于运算符的优先顺序的描述正确的是() A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是()sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad);

A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是() A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:() void main ( ) { int m,n; scanf(“%2d%3d”,&m,&n); printf(“m=%d n=%d\n”,m,n); } A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是() main( ) { int x,y; scanf(“%d”,&x); y=x>12x+10:x-12; printf(“%d\n”,y); } A、 0 B、 22 C、 12 D、10 11、C语言中while和do-while循环的主要区别() A、do-while的循环体至少执行一次 B、while 的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内

算法与程序设计试题

算法与程序设计试题 一、选择题(每题两分,共14分每题2分) 1、要进行元旦晚会比赛,学校请你设计一个能够对元旦晚会节目分数自动排序的软件,你接到任务后,准备开始设计此软件,比较好的方法和步骤是() A、设计算法,编写程序,提出问题,调试程序 B、分析问题,编写程序,设计算法,调试程序 C、分析问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 2、数值型数据包括两种。 A、整型和长整型 B、整型和浮点型 C、单精度型和双精度型 D、整型、实型和货币型 3、具有输出数据功能的控件是:() A、窗体控件和标签控件 B、复选框控件和文本框控件 C、标签控件和文本框控件 D、选项框按钮控件和复选框控件 4、要使循环体至少执行一次,应使用循环。 5、下列程序段是计算公式的: s=0;t=1 for I =1 to 10 t:=t*I s:=s+t Next I A、s=1+2+3+......10B、s=1*2*3* (10) C、s=1!+2!+3! ......10! D、s=1+2*3+3*4+4*5+......9*10 6、在窗体(Name属性为Formal)上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(Name属性为Command1),然后编写如下两个事件过程: Private Sub Command1_Click() A = Text1Text + Text2.Text Print a End Sub Private Sub Formal_Load() Text1.Text = " " Text2.Text = " " End Sub 程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入123和321,然后单击命令按钮,则输出结果为()。 A、444 B、321123 C、123321 D、132231 7、使用函数与过程是为了。 A、使程序模块化B、使程序易于阅读

vb算法与程序设计复习题

《算法与程序设计》复习题 一、选择题部分(100题) 一章一节:了解计算机解决问题的过程 1.用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序答案:B 2.学校要举行运动会,请你设计一个能够对运动员分数自动排序的软件,如果要设计此软件,以下最好的方法和步骤是()。 A、分析问题,编写程序,设计算法,调试程序 B、设计算法,编写程序,提出问题,调试程序 C、提出问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 答案:C 3.下列步骤不属于软件开发过程的是()。 A、任务分析与系统设计 B、软件的销售 C、代码编写与测试 D、软件测试与维护 答案:B 4.用计算机解决问题的步骤一般为()①编写程序②设计算法③分析问题④调试程序。 A.①②③④ B.③④①② C.②③①④ D.③②①④答案:D 5.以下描述中最适合用计算机编程来处理的是()。 A、确定放学回家的路线 B、计算某个同学期中考试各科成绩总分 C、计算100以内的奇数平方和 D、在因特网上查找自己喜欢的歌曲答案:C 6.以下问题中最适合用计算机编程处理的是()。 A、制定本学期的学习计划 B、计算正方形的周长 C、创作一首歌曲 D、求1000以内的所有素数 答案:D 7.由“上车—掏钱—投币”所描述的问题是()。 A、无人售票车投币过程 B、乘公交车过程 C、上车过程 D、下车过程答案:A 一章二节:算法和算法描述 8.下面说法正确的是()。 A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 答案:A 9.算法描述可以有多种表达方法,下面哪些方法不可以描述“水仙花数问题”的算法()。 A.自然语言 B.流程图 C.伪代码 D.机器语言答案:D 10.下面关于算法的说法错误的是()。 A、算法必须有输出 B、算法就是程序 C、算法不一定有输入 D、算法必须在有限步执行后能结束 答案:B 11.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、情况结构 C、流程结构 D、循环结构答案:D 12.算法的三种基本控制结构是分支结构、循环结构和() A、模块结构 B、情况结构 C、流程结构 D、顺序结构答案:D 13.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、循环结构 C、流程结构 D、情况结构答案:B 14.下面关于算法的认识正确的是()。 A、算法就是求解“鸡兔同笼问题” B、算法一定没有输出 C、算法就是计算机程序 D、算法的步骤必须是有限的答案:D

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