黄建的二级C语言课后题_06_函数
计算机等级考试二级C语言教程课后习题解析

C)0,0,0
D)程序出错
7.已知字符 A 的 ASCII 代码值为 65,以下程序运行时若从键盘输入:B33<回车>。输出结
果是 A
#include "stdio.h"
main()
5
新视野教育全国计算机等级考试二级 C 语言教程习题
{
char a,b;
a=getchar(); scanf("%d",&b);
A)大写字母
B)连接符
C)数字字符
D)下划线
2. 以下选项中不合法的标识符是 C
A)print
B)FOR
C)&a
D)_00
3. 以下叙述中错误的是 A
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
3COM
_001
第四节 数制转换
1.十进制整数 360 的八进制为_550_,十六进制为_168_。
第五节 整数和实数
1.以下选项中正确的整型常量是 C
A)10110B
B)0386
C)0Xffa
D)x2a2
2.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是 D
A)均占 4 个字节
}
6.以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是____。A
#include <stdio.h>
main()
{
int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。
2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。
二、填空题1. 在C语言中,`________`关键字用于声明一个函数。
答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。
2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。
```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。
三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。
2. 编写一个C语言程序,实现将一个字符串反转。
```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。
《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案

本文由皓月90贡献 doc文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
《全国计算机等级考试二级教程——C 语言程序设计》课后题及参考答案 目 录 第一章、第二章、第三章、第四章、第五章、第六章、第七章、第八章、第九章、 第十章、第十一章、第十二章、第十三章、第十四章、第十五章、第十六章 第一章 程序设计基本概念 1.1 在 TRUBO C 环境中用 RUN 命令运行一个 C 程序时,所运行的程序的后缀是。
答案:.exe 1.2 C 语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后, 生成文件的后缀是。
答案:.c .obj .exe 1.3 结构化程序由、、三种基本结构组成。
答案:顺序、选择、循环 第二章 C 程序设计的初步知识 一、选择题 2.1 以下选项中正确的整型常量是 A)12. B)-20 C)1,000 D)4 5 6 答案:B 2.2 以下选项中正确的实型常量是 A)0 B)3. 1415 C)0.329×10(2)(10 的 2 次方) D).871 答案:D 2.3 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2 答案:B 2.4 以下选项中不合法的用户标识符是 A)abc.c B)file C)Main D)PRINTF 答案:A 2.5 以下选项中不合法的用户标识符是 A)_123 B)printf C)A¥ D)Dim 答案:C 2.6 C 语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)** 答案:A 2.7 可在 C 程序中用作用户标识符的一组标识符是 A)void define WORD B)as_b3 _123 If C)For -abc case D)2c DO SIG 答案:B 2.8 若变量已正确定义并赋值,符合 C 语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B 2.9 以下叙述中正确的是 A)a 是实型变量,C 允许进行以下赋值 a=10,因此可以这样说:实型变量中允许存放整 型值。
计算机二级c语言试题题库及答案

计算机二级c语言试题题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义变量的关键字是()。
A. defineB. varC. intD. let答案:C2. 下列关于C语言函数的描述,不正确的是()。
A. 函数可以没有参数B. 函数可以返回值C. 函数必须有返回值D. 函数可以嵌套定义答案:C3. 以下哪个选项不是C语言中的运算符()。
A. %B. &&C. ++D. :答案:D4. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A5. C语言中,用于表示逻辑与的运算符是()。
A. &&B. ||C. !D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语句是:int array[10]; 其中array[0]的值默认为____。
答案:02. 如果一个函数的返回类型是int,那么在函数体中必须包含一条____语句。
答案:return3. 在C语言中,用于计算字符串长度的函数是____。
答案:strlen4. C语言中,用于将字符数组转换为字符串的字符是____。
答案:'\0'5. 当使用指针变量时,必须先对其进行____。
答案:初始化三、编程题(每题10分,共20分)1. 编写一个C语言函数,实现两个整数的交换。
```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```四、简答题(每题10分,共40分)1. 简述C语言中指针和数组的关系。
黄建的C语言课后习题_15_输入输出函数

全国计算机等级考试二级C 语言考前辅导 常用的输入输出函数Page 29(1)[2004.4.10]运行时输入:12<回车>,则程序的输 出结果是char ch1, ch2; int n1, n2;ch1 = getchar(); ch2 = getchar(); n1 = ch1 '0';n2 = n1 * 10 + (ch2 '0'); printf("%d\n", n2);(2)[2005.9.35]运行时输入:a<回车>,则叙述正确 的是char c1 = '1', c2 = '2'; c1 = getchar(); c2 = getchar(); putchar(c1); putchar(c2);A)变量 c1 被赋予字符 a ,c2 被赋予回车符 B)程序将等待用户输入第 2 个字符C)变量 c1 被赋予字符 a ,c2 中仍是原有字符 2D)变量 c1 被赋予字符 a ,c2 中将无确定值 (3)[2010.3.15][2012.3.15]运行时输入:12<回车 >34<回车>,则程序的输出结果是 char a,b,c,d; scanf("%c%c", &a, &b); c = getchar(); d = getchar(); printf("%c%c%c%c\n", a, b, c, d);A)1234 B)12 C)12 D)123 34(4)[2006.4.29]运行时输入:123<回车>456<回车>,则程序的输出结果是 char c1, c2, c3, c4, c5, c6; scanf("%c%c%c%c", &c1, &c2, &c3, &c4); c5 = getchar(); c6 = getchar(); putchar(c1); putchar(c2);printf("%c%c\n", c5, c6);(5)[2006.4.22]通过 while 循环不断读入字符,当读入字母 N 时结束循环。
C语言程序设计答案(黄保和编)第6章函数

11、在下列结论中,只有一个是错误的,它是B)有些递归程序是不能用非递归算法实现的
12、在下列结论中,只有一个是正确的,它是B)递归函数中的形参是自动变量
13、下列叙述错误的是C)主函数中定义的变量在整个程序中都是有效的
14、若函数类型和return语句中的表达式类型不一致,则B)不会出错,且返回值的类型以函数类型为准
{
sum+=(x%10)*(x%10)*(x%10);
x/=10;
}
if(sum==a)
return 1;
else
return 0;
}
3、编写一个程序,把随机整数赋给在如下范围内的整型变量n
A)1<=n<=6 B)0<=n<=9 C)1<=n<=1000 D)-10<=n<=10 E)-6<=n<=8
{
int x,y;
int r=1000;
int k=0;
for (int i=0;i<n;i++)
{
x = rand()%r+1;
y = rand()%r+1;
if (x*x+y*y<=1000000)
{
k++;
}
}
return k*4.0/n;
}
int main()
{
int n;
srand(time(NULL));
如果变量定义在一个函数或复合语句的内部,则称该变量为局部变量,局部变量的作用域是函数级的或者模块级的,如果变量定义在所有函数外部,则称该变量为全局变量,其作用域是从它的定义的位置开始到本源文件结束。选择变量类型的两个原则是:1当变量只在某函数或复合语句内使用时,不要定义成全局变量。2当多个函数都引用同一个变量时,在这些函数上面定义全局变量,而且定义部分尽量靠近这些函数。
计算机等级考试二级c语言习题答案

计算机等级考试二级c语言习题答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:B、C2. 以下哪个选项是C语言中整型常量的正确表示?A. 0x1AB. 1.5e2C. 0755D. 1.23f答案:A、C3. 若有以下定义:```cint a = 10, b = 20, c = 30;```则表达式 `a > b ? a : c` 的值是多少?A. 10B. 20C. 30D. 编译错误答案:C4. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"\n"D. "Hello, World!"\"答案:A5. 以下哪个选项是C语言中正确的函数声明?A. int myFunction();B. void myFunction(int a);C. int myFunction(int);D. int myFunction();答案:C二、填空题1. 在C语言中,`sizeof(char)` 的值是 ________。
答案:12. 若有以下代码:```cint a = 10;printf("%d", a++);```输出的结果是 ________。
答案:103. 在C语言中,以下代码段的输出结果是什么?```cint x = 5;printf("%d", x++);```输出的结果是 ________。
4. 在C语言中,以下代码段的输出结果是什么?```cint x = 5;printf("%d", ++x);```输出的结果是 ________。
黄建的二级C语言课后题_03_循环结构

全国计算机等级考试二级C语言考前辅导循环语句的执行流程Page 5(1)[2006.9.22]程序运行结果是int k = 5;while (--k)printf("%d", k -= 3);(2)[2006.4.30][2010.9.21][2011.9.20]程序运行结果是int y = 10;while (y--);printf("%d", y);(3)[2004.4.23]程序运行结果是int a = 0, b = 5, c = 3;while (c-- > 0 && ++a < 5)b += -1;printf("%d,%d,%d", a, b, c);(4)[2007.9.8]程序运行结果是int n = 12345, d;while (n != 0){d = n % 10;printf("%d", d);n /= 10;}(5)[2010.9.20]程序运行结果是int a = 1, b = 2;while (a < 6){b += a; a += 2; b %= 10; }printf("%d,%d", a, b);(6)[2005.9.36]运行后,n的值是int k = 5, n = 0;while (k > 0){switch (k){default: break;case 1: n += k;case 2:case 3: n += k;}k--;}(7)[2011.3.19]程序运行时输入:1 2 3 4 5 0<回车>,则输出int s;scanf("%d", &s);while (s > 0){switch (s){case 1:printf("%d", s+5);case 2:printf("%d", s+4);break;case 3:printf("%d", s+3);default:printf("%d", s+1);break;}scanf("%d", &s);}(8)[2008.4.8]程序运行结果是for (k = 2; k < 6; k++, k++)printf("##%d", k);(9)[2005.4.10]程序运行结果是for (a=0, b=6; a < b; a++, b--)printf("%d%d", a, b);(10)[2012.3.22]叙述正确的是for (k = -1; k < 0; k++)printf(" * ”);A)循环体执行一次B)循环体执行两次C)循环体一次也不执行D)构成无限循环(11)[2007.9.22]程序运行结果是for (y = 9; y > 0; y--)if (y % 3 == 0)printf("%d", --y);(12)[2010.3.21]程序运行结果是int a = 1, b = 2;for ( ; a < 8; a++){ b += a; a += 2; }printf("%d,%d", a, b);(13)[2011.9.8]以下程序运行后,i和j的值是for (i = 6; i > 3; i--) j = i;(14)[2011.3.22]对下述循环语句,说法正确的是for (i=0, k=-1; k = 1; i++, k++)printf(" * ");A)程序编译有错B)是无限循环C)只循环一次D)一次也不循环(15)[2012.3.21]程序运行结果是int s = 0, n;for (n = 0; n < 3; n++){switch (s){case 0:case 1: s += 1;case 2: s += 2;break;case 3: s += 3;default: s += 4;}printf("%d", s);}(16)[2009.9.18]运行后c的值是int c = 0, k;for (k = 1; k < 3; k++){switch (k){default: c += k;case 2: c++; break;case 4: c+=2; break;}}(17)[2004.9.20]程序运行结果是for (i = 0; i < 3; i++){switch (i){case 0: printf("%d", i);case 2: printf("%d", i);default: printf("%d", i);}}(18)[2009.9.10]程序运行结果是int f, f1, f2, i;f1 = 0; f2 = 1;printf("%d%d", f1, f2);for (i = 3; i <= 5; i++){f = f1 + f2;printf("%d", f);f1 = f2; f2 = f;}(19)程序运行结果是int a = 3;doprintf("%d", a -= 2);while (!--a);(20)[2009.9.9]运行后a的值是int a = 1, b = 7;Page 6辽宁科技大学黄建公共信箱: v.c.6@密码: 123.456do{b = b / 2; a += b;} while (b > 1);(21)[2007.9.19]程序运行结果是int i = 0;do{printf("%d,", i);} while (i++);printf("%d\n", i);(22)[2008.9.29]程序运行结果是int i = 5;do{if (i % 3 == 1)if (i % 5 == 2){printf("*%d", i);break;}i++;} while (i != 0);(23)[2007.4.23]程序运行结果是int k = 5, n = 0;do{switch (k){case 1: case 3:n+=1; break;default: n = 0; k--;case 2: case 4:n+=2; k--; break;}printf("%d", n);} while (k > 0 && n < 5); (24)[2004.9.25]要求计算5!,以下不能完成此操作的程序是A)for (i = s = 1; i <= 5; i++)s *= i;B)i = s = 1;while (i <= 5) s *= i++;C)i = 0; s = 1;do { s *= ++i; } while (i < 5);D)for (i = 1; i <= 5; i++){ s = 1; s *= i; }(25)[2009.3.9]运行后,s的值是int k = 1, s = 0;do{if (k % 2 != 0)continue;s += k++;} while (k > 10);(26)[2008.4.21]程序运行结果是int x = 8;for ( ; x > 0; x--){if (x % 3){printf("%d", x--);continue;}printf("%d", --x);}(27)[2005.4.41]运行后b的值是int a = 1, b;for (b = 1; b <= 10; b++){if (a >= 8) break;if (a % 2 == 1){a += 5; continue;}a -= 3;}(28)[2004.9.24]程序运行结果是int i = 0, s = 0;for ( ; ; ){if (i == 3 || i == 5) continue;if (i == 6) break;i++; s += i;}printf("%d", s);A)9 B)10 C)21 D)死循环(29)[2011.3.20]以下正确的是for (i = 0; i < 8; i++){n = rand() % 4; //随机数switch (n){case 1:case 2:printf("%d", n);break;case 3:printf("%d", n);continue;case 0:exit(0); //终止程序}printf("%d", n);}A)for循环语句固定执行8次B)当产生的随机数n为3时结束循环操作C)当产生的随机数n为1时不做任何操作D)当产生的随机数n为0时结束程序运行(30)填空:输入n,输出n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国计算机等级考试二级C语言考前辅导函数与变量作用域Page 11(1)[2012.3.33]程序运行结果是void fun(int n){int i;for (i = 0; i <= n; i++)printf("#");}main(){fun(1); printf("?"); fun(2);}(2)[2009.9.24]程序运行结果是void fun(int p){int d = 2;p = d++;printf("%d", p);}main(){int a = 1;fun(a);printf("%d\n", a);}(3)[2010.9.24]程序运行结果是int f(int x){ return x * 2; }main(){int n = 1, m;m = f(f(f(n)));printf("%d", m);}(4)[2009.3.24]程序运行结果是int f(int x, int y){ return (y - x) * x; }main(){int a = 3, b = 4, c = 5;printf(“%d”, f(f(a, b), f(a, c)); }(5)[2011.3.32]程序运行结果是int fun(int x, int y){if (x != y) return (x+y)/2;else return x;}main(){int a = 4, b = 5, c = 6, d;d = fun(2*a, fun(b,c)));printf("%d", d);}(6)[2006.9.25]程序运行结果是fun(int x, int y){ return x + y; }main(){int a = 1, b = 2, c = 3, s;s=fun((a++,b++,a+b),c++);printf("%d", s);}(7)[2004.9.28]程序运行结果是int f(int a){ return a / 2; }main(){int a[6] = {1,3,5,2,0,7};int i, s = 0;for (i = 0; a[i]; i++)s += f(a[i]);printf("%d", s);}(8)[2005.9.12]程序运行时输入:1234<回车>,则输出:int sub(int n){ return (n / 10 + n % 10); }main(){int x, y;scanf("%d", &x);y = sub(sub(sub(x)));printf("%d", y);}(9)[2005.4.26]程序运行结果是int f1(int x, int y){ return x>y?x:y; }int f2(int x, int y){ return x>y?y:x; }main(){int a=4,b=3,c=5,d=2,e,f,g;e = f2(f1(a, b), f1(c, d));f = f1(f2(a, b), f2(c, d));g = a + b + c + d - e - f;printf("%d,%d,%d", e,f,g);}(10)[2006.4.33]程序运行结果是int fun1(double a){ return a *= a; }int fun2(double x, double y){double a = fun1(x);double b = fun1(y);return (int)(a+b);}main(){double w = fun2(1.1, 2.0);printf("%.2f", w);}(11)[2007.4.8]程序运行结果是int k = 0;void fun(int m){m += k; k += m;printf("%d%d", m, k++);}main(){int i = 4;fun(i++);printf("%d%d\n", i, k);}(12)[2009.9.11]程序运行结果是int a = 5;void fun(int b){int a = 10;a += b;printf("%d", a);}main(){int c = 20;fun(c);a += c;printf("%d\n", a);}(13)[2006.9.42]程序运行结果是void fun2(int a, int b){ printf("%d%d", a, b); }int a = 1, b = 2;void fun1(){ a = 3; b = 4; }main(){fun1();printf("%d%d", a, b);fun2(5, 6);}(14)[2008.4.12][2009.9.15][2011.9.11]程序运行结果是void fun(int x){if (x/2 > 0) fun(x/2);printf("%d", x);}main(){fun(3);}(15)[2010.9.35]程序运行结果是void fun(int x)Page 12辽宁科技大学黄建公共信箱: v.c.6@密码: 123.456{if (x/2 > 1) fun(x/2);printf("%d", x);}main(){fun(7);}(16)[2012.3.32]程序运行结果是void fun(int x){if (x > 0) fun(x - 1);printf("%d", x);}main(){fun(2);}(17)[2011.3.32]执行:n = fun(3);,则函数fun总共被调用的次数是int fun(int k){if (k < 1) return 0;else if (k == 1) return 1;else return fun(k-1) + 1;}(18)[2006.9.28][2008.4.34]程序运行结果是int fun(int x){int p;if (x==0 || x==1) return 3;p = x - fun(x-2);return p;}main(){printf("%d", fun(7));}(19)[2008.9.30]程序运行结果是int fun(int a, int b){if (b == 0) return a;else return fun(--a, --b);}main(){printf("%d\n", fun(4,2));} (20)[2011.9.24]程序运行结果是double f(double x);main(){double a = 0;int i;for (i = 0; i < 30; i += 10)a += f((double)i);printf("%5.0f", a);}double f(double x){ return x * x + 1; }(21)[2008.9.22]下面fun函数的实参个数是fun(f(a,b), (c,d,e), (x,f(y,z)));A)3 B)4 C)5 D)8(22)[2008.9.25]以下错误的是A)用户定义的函数中可以没有return语句B)用户定义的函数中可以有多个return语句,以便调用一次返回多个函数值C)用户定义的函数如果没有return语句,应定义为void类型D)函数的return语句中可以没有表达式(23)[2010.3.24]以下正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的函数在执行结束时不能返回到调用处(24)[2007.9.25]以下正确的是A)函数的实参和形参共占同一存储单元B)形参只是形式上的,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(25)[2006.4.46]以下错误的是A)C程序必须由一个或一个以上的函数组成B)函数调用可以作为一个独立的语句存在C)若函数有返回值,必须通过return语句返回D)函数形参的值也可以传回给对应的实参(26)[2010.9.11]以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(27)[2004.4.26]若程序中定义了以下函数f,则以下选项中对该函数错误的声明是double f(double x, double y){return x + y;}A)double f(double x, y);B)double f(double, double);C)double f(double a,double b);D)double f(double x, double y);(28)[2007.4.26]函数返回值的类型最终取决于A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型(29)以下函数值的类型是fun(int a, float x){return (double)(a + x);}A)int B)doubleC)void D)不确定- - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(1)##?###(2)21(3)8(4)9 (5)6(6)8(7)4(8)10(9)4,3,7(10)5.00(11)4455(12)3025(13)3456(14)13(15)37(16)012(17)3(18)2(19)2(20) 503(21)A(22)B(23)B(24)D(25)D(26)C(27)A(28)A(29)A。