黄建的二级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整除的所有自然数之和的平方根。
二级C语言题目答案解析
一、选择题(每小题1分,共40分)1下列有关内联函数的叙述中,正确的是( )。
A.内联函数在调用时发生控制转移B.内联函数必须通过关键字inline来定义C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是return语句参考答案:C参考解析:一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,所以在调用时不发生控制转移。
在类内部实现的函数都是内联函数,可以不用inline定义;只有函数外部定义的内联函数才必须加关键字inline。
编译系统并非对内联函数必须使用内联,而且根据具体情况决定。
内联函数不是必须要有返回值的。
2语句int*P=&k;定义了指针P,与这个语句等效的语句序列是( )。
A.int* p;P=&k;B.int * P;P=k;C.int * p;* P=&k;D.int * p;* P=k;参考答案:A参考解析:本题考查指针和地址,题目中定义了一个指向变量k的一个指针p,那么与题目中等效的表达式A选项,即先定义一个指向整型的指针,然后指向k的地址。
3有如下程序:#includeusing namespace std;class A{public:A(){cout<<”A”;}-A(){cout<<”-A”;}};class B:public A{A*P;public:B(){cout<<”B”;P=new A();}-B(){cout<<”~B”;delete p;}};int main(){B obj;return 0;}执行这个程序的输出结果是( )。
A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A参考答案:B参考解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数。
《全国计算机等级考试二级教程——C语言程序设计》课后习题详细答案
《全国计算机等级考试二级教程——C语言程序设计》习题分析与详细解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】 EXE1.2 【参考答案】[1] .C [2] .OBJ [3] .EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章 C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】 B)2.2 【参考答案】 D)2.3 【参考答案】 B)2.4 【参考答案】 A)2.5 【参考答案】 C)2.6 【参考答案】 A)2.7 【参考答案】 B)2.8 【参考答案】 B)2.9 【参考答案】 D)2.10 【参考答案】 C)2.11 【参考答案】 B)2.12 【参考答案】 B)2.13 【参考答案】 A)二、填空题2.14 【参考答案】[1] 11 [2] 122.15 【参考答案】[1] 4.2 [2] 4.22.16 【参考答案】[1] { [2] } [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1] int [2] float [3] double2.19 【参考答案】 float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1] a*b/c [2] a/c*b [3] b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2] 1位二进制数据(0或1)2.25 【参考答案】[1] 8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1] 32767 [2] -32768 [3] 10000000000000002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。
全国计算机等级考试二级教程--C语言程序设计课后习题答案(最新整理)
4.23 #include
void main() { int a; printf ("请输入一个整数 :"); scanf ("%d",&a); if (a%2==0) { printf ("%d 是偶数\n", a); } else { printf ("%d 是奇数\n", a); } }
《全国计算机等级考试二级教程--C 语言程序设计》课后习题答案
第一章 1.1 EXE 1.2 C OBJ EXE 1.3 顺序 选择 循环
第二章 一. 选择题 2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B 2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A 二. 填空题 2.14 11 12 2.15 4.2 4.2 2.16 { } 定义 执行语句 2.17 关键字 用户标识符 2.18 int float double 2.19 float a1=1; float a2=1; 2.20 存储单元 2.21 3.5 2.22 (a*b)/c a*b/c a/c*b 2.23 把常量 10 赋给变量 s 2.24 位 1 或 0 2.25 8 127 0111111 -128 10000000 2.26 32767 -32768 1000000000000000 2.27 10 8 16 三. 上机改错题 2.28 #include "stdio.h"; 删除行尾的";" main(); / * main function * / 删除")"后的";",注释中的*要紧靠“/”,即应为“/*”和“*/” 函数开始处遗失了一个“{” float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注释符号不可嵌套使用 r = 5.0 ; s = 3.14159 * r * r ; printf("%f\n",s) 行尾遗失了“;” 函数结束处遗失了一个“}”
黄建的二级C语言课后题_04_循环嵌套
全国计算机等级考试二级C语言考前辅导循环语句嵌套Page 7(1)[2009.3.6]以下表达式的值是(int)((double)(5/2) + 2.5)(2)[2009.9.14]以下表达式的值是((double)9/2 + 0.7) - 9%2(3)[2011.3.6]以下表达式的值是(int)((double)(3/2) + 0.5 + (int)1.99 * 2)(4)[2005.4.15]以下不合法的数值常量是A)1.234e04 B)1.234e0.4C)1.234e+4 D)1.234e0(5)[2004.4.13][2011.3.14]以下合法的实型常量是A)1.2E0.5 B)3.14E C).5E-3 D)E5(6)填空,输入一个实型数,保留该数小数点后两位,对小数点后第3位四舍五入double x;scanf(“%lf”, &x);x = (int)(x * 100 + 0.5) / ;printf(“%f”, x);(7)[2008.9.27]以下程序的运行结果是int i, j;for (i = 3; i >= 1; i--){for (j = 1; j <= 2; j++)printf("%d", i + j);printf("\n");}A)234 B)432 C)23 D)45345 543 34 3445 23(8)[2007.4.24]以下程序的运行结果是for (i = 1; i < 3; i++){for (j = i; j < 3; j++)printf("%d*%d=%d ", i, j, i*j);printf("\n");}A)1*1=1 1*2=2 B)1*1=1 1*2=22*1=2 2*2=4C)1*1=1 D)1*1=11*2=2 2*2=4 2*1=2 2*2=4(9)[2007.9.24]以下程序运行后,m的值是int i, j, m = 55;for (i = 1; i <= 3; i++)for (j = 3; j <= i; j++)m = m % j; (10)填空,使程序输出如下数字方阵1 1 1 1 12 2 2 2 23 3 3 3 34 4 4 4 45 5 5 5 5#define N 5int a, b;for (a = 1; a <= N; a++){for (b = 1; b <= N; b++)printf("%d ", );printf("\n");}(11)[2010.3.20]以下程序运行后,m的值是int i, j, m = 1;for (i = 1; i < 3; i++){for (j = 3; j > 0; j--){if (i*j > 3) break;m *= i*j;}}(12)以下程序运行后,s的值是int i, j, s;for (i = 3; i >= 1; i--){s = 0;for (j = 1; j <= i; j++)s += i * j;}(13)[2006.4.15]以下程序的运行结果是int i, j, n = 4, t = 1;for (i = 1; i <= n; i++){for (j = 1; j <= n-i+1; j++){printf("%2d", t);t++;}printf("\n");}(14)[2009.3.20]以下程序的运行结果是Page 8辽宁科技大学黄建公共信箱: v.c.6@密码: 123.456for (i = 0; i < 4; i++, i++)for (k = 1; k < 3; k++);printf("*");(15)[2004.4.25]以下程序运行后,n的值是int i, n = 0;for (i = 2; i < 5; i++){do{if (i % 3) continue;n++;} while (!i);n++;}(16)[2006.4.32]以下程序运行后,x的值是int i, j, x = 0;for (i = 0; i < 2; i++){x++;for (j = 0; j <= 3; j++){if (j % 2) continue;x++;}x++;}(17)填空,输出100以内所有的素数(质数)int i, a;for (a = 2; a <= 100; a++){for (i = 2; i < a; i++)if (a % i == 0) ;if (i == a) printf("%d,", a);}(18)填空:删除整数尾部的0。
c语言第六章函数习题答案
c语言第六章函数习题答案
C语言第六章函数习题答案
在C语言学习的过程中,函数是一个非常重要的概念。
函数可以帮助我们将程序分解成模块化的部分,使得代码更加清晰和易于维护。
在第六章的函数习题中,我们将会通过一些练习来巩固对函数的理解和运用。
第一道习题是编写一个函数,计算两个整数的最大公约数。
这个习题考察了我们对函数的参数传递和返回值的运用。
我们可以使用欧几里德算法来实现这个函数,通过递归的方式不断求解两个数的余数,直到余数为0,此时较小的数就是最大公约数。
第二道习题是编写一个函数,判断一个数是否为素数。
这个习题需要我们对循环和条件判断的运用。
我们可以遍历2到该数的平方根之间的所有数,如果能被整除,则该数不是素数;否则就是素数。
第三道习题是编写一个函数,将一个字符串中的大写字母转换为小写字母。
这个习题考察了我们对字符数组和指针的操作。
我们可以使用循环遍历字符串中的每一个字符,然后通过条件判断来进行大小写转换。
通过这些习题的练习,我们可以更加熟练地运用函数来解决问题。
函数的灵活运用可以让我们的程序更加模块化和易于理解。
希望大家在学习C语言的过程中能够多加练习,不断提升自己的编程能力。
二级C语言课本课后习题参考答案
二级C语言课本课后习题参考答案第一章程序设计基本概念**************************************************(1) exe(2) C,obj , exe(3) 顺序,选择,循环***************End of Chapter 1*******************第二章C程序设计的初步知识**************************************************一、选择题(1) B (2) D (3) B (4) A (5) C(6) A (7) B (8) B (9) A (10) C(11)B (12)B (13)A二、填空题(14)11,12(15) 4.2,4.2(16) { ,} 说明,执行(17) 关键字,用户标识符(18) int ,float ,double(19) float a1=1,a2=1 ;(20) 存储单元(21) 3.5(22) a*b/c a/c*b a*(b/c)(23) 10赋给变量s(24) 位,0或1(25) 8 ,255 ,11111111,0,00000000(26) 32767 ,-32768 ,10000000 00000000(27)十,八,十六三、上机改错题——————————————————————————————————————(28) 请指出以下C程序的错误所在#include stdio.h ;main( ); / * main function * /float r, s; /* /*r is radius*/,/*s is area of circular*/*/r = 5.0 ;s=3.14159 * r * r ;printf("%f\n",s);※正确应为:#include 或#include"stdio.h"main( ) /* main function */{float r,s; /*r is radius, s is area of circular*/r = 5.0 ;s = 3.14159 * r * r ;printf("%f\n",s);} ——————————————————————————————————————(29) 请指出以下C程序的错误所在#include stdio.hmain /* main function */{float a,b,c,v; /*a,b,c are sides, v is volume of cube*/a = 2.0 ;b = 3.0 ;c = 4.0v = a * b * c;printf("%f\n",v);}※正确应为:#include"stdio.h"main( ) /* main function */{float a,b,c,v; /*a,b,c are sides, v is volume of cube*/a = 2.0 ;b = 3.0 ;c = 4.0;v = a * b * c;printf("%f\n",v);}***************End of Chapter 2*******************第三章顺序结构**************************************************一、选择题(1) C (2) C (3) D (4) C (5) D(6) B (7) C (8) D (9) A (10)B(11)C (12)D (13)D (14)A (15)C(16)C (17)C (18)均不对,应为scanf( “%6f”,&c) (18) C (20) B二、填空题(21) ①-200,2500 ②i=-200, j=2500 ③i = -200 , j = 2500(22) 12 ,0 ,0(23) 语句块,{ ;}(24) ;(25) 100<空格>25.81<空格>1.89234 /*可用一个或几个空格作为输入时的间隔符*/ 10025.811.89234 /*Tab(制表符)也可以作为输入时的间隔符*/10025.811.89234 /*CR(回车符)也可以作为输入时的间隔符*/(26) x = 127,x =ццц127,x=ццц177, x=цццц7f, x=ццц127。
计算机等级考试二级c语言习题答案
计算机等级考试二级c语言习题答案一、选择题1. 在C语言中,下列哪个选项是合法的标识符?A. 2variableB. variable2C. variable!D. variable$答案:B2. C语言中,一个整型变量占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D4. 在C语言中,字符'A'的ASCII码值是多少?A. 65B. 97C. 66D. 98答案:A5. 下列哪个选项是C语言中的合法整型常量?A. 0x1AB. 1.2E3C. 0177D. 0b1010答案:C二、填空题1. 在C语言中,用于定义变量的关键字是________。
答案:int2. 若有定义 int a=5, b=6;,则表达式 a++ + b 的值是________。
答案:113. 在C语言中,用于输出的函数是________。
答案:printf4. 若有定义 int a=10;,则执行语句 a %= 3; 后,变量 a 的值是________。
答案:15. 在C语言中,用于计算两个浮点数之差的绝对值的函数是________。
答案:fabs三、编程题1. 编写一个程序,计算并输出以下数列的前10项之和:1, 1/2, 1/3, 1/4, ...请给出完整的程序代码。
```c#include <stdio.h>int main() {double sum = 0.0;for (int i = 1; i <= 10; i++) {sum += 1.0 / i;}printf("The sum of the series is: %f\n", sum);return 0;}```2. 编写一个程序,实现对字符串的逆序输出。
```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("Enter a string: ");scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```结束语:以上是计算机等级考试二级C语言的部分习题及答案,希望对您的学习和备考有所帮助。
《全国计算机等级考试二级教程——C语言程序设计》课后习题详细答案
2.16 【参考答案】 [1] { [2] } [3] 定义 [4] 执行
2.17 【参考答案】 [1] 关键字 [2] 用户标识符
2.18 【参考答案】 [1] int [2] float [3] double
《全国计算机等级考试二级教程——C语言程序设计》
习题分析与详细解答
第一章 程序设计基本概念习题分析与解答
1.1 【参考答案】 EXE
1.2 【参考答案】 [1] .C [2] .OBJ [3] .EXE
1.3 【参考答案】 [1] 顺序结构 [2] 选择结构 [3] 循环结构
2.8 【参考答案】 B)
2.9 【参考答案】 D)
2.10 【参考答案】 C)
2.11 【参考答案】 B)
2.12 【参考答案】 B)
2.13 【参考答案】 A)
二、填空题
2.14 【参考答案】 [1] 11 [2] 12
2.23 【参考答案】 把10赋给变量s
2.24 【参考答案】 [1] 位 [2] 1位二进制数据(0或1)
2.25 【参考答案】 [1] 8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000
2.26 【参考答案】 [1] 32767 [2] -32768 [3] 1000000000000000
2.27 【参考答案】 [1] 十 [2] 八 [3] 十六
三、上机改错题
2.28 【分析与解答】
第1行的错误:
(1) include是一个程序行,因此在此行的最后不应当有分号(;)。
1
第二章 C程序设计的初步知识习题分析与解答
二级c语言试题及答案
二级c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的叙述中,错误的是()。
A. C语言是一种高级语言B. C语言可以直接在计算机上运行C. C语言具有结构化的特点D. C语言具有丰富的数据类型答案:B2. 在C语言中,用于定义变量的关键字是()。
A. varB. defineC. intD. let答案:C3. 下列选项中,哪个不是C语言中的运算符?()A. %B. &&C. ::D. +=答案:C4. C语言中,用于定义数组的关键字是()。
A. arrayB. listC. vectorD. int答案:D5. 下列关于C语言函数的叙述中,正确的是()。
A. 函数可以没有返回值B. 函数必须有返回值C. 函数的返回值类型不能为voidD. 函数的参数类型必须与返回值类型一致答案:A6. 在C语言中,用于定义结构体的关键字是()。
A. structB. classC. unionD. typedef答案:A7. C语言中,用于声明指针的符号是()。
A. &B. %C. *D. #答案:C8. 下列关于C语言文件操作的叙述中,错误的是()。
A. 文件操作需要包含头文件stdio.hB. 文件指针类型为FILE*C. 文件打开使用fopen函数D. 文件关闭使用fclose函数答案:A9. C语言中,用于实现循环的关键字是()。
A. loopB. repeatC. forD. do答案:C10. 在C语言中,用于定义枚举类型的关键字是()。
A. enumB. typedefC. unionD. struct答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义单精度浮点数的关键字是________。
答案:float2. C语言中,用于定义双精度浮点数的关键字是________。
答案:double3. C语言中,用于定义字符型变量的关键字是________。
- 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。