计算机C++额外作业及课后练习题
- 格式:doc
- 大小:41.50 KB
- 文档页数:5
计算机二级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程序设计的初步知识一、选择题1。
以下选项中正确的整型常量是().A.12。
B.-20 C。
1,000 D。
4 5 62。
以下选项中正确的实型常量是( )。
A。
0 B。
3。
1415 C.0.329×102 D. .8713。
以下选项中不正确的实型常量是()。
A.2。
607E-1B.0.8103e 2C.—77。
77 D。
456e—24。
以下选项中不合法的用户标识符是()。
A。
abc.c B。
file C。
Main D。
PRINTF5. 以下选项中不合法的用户标识符是()。
A._123B.printfC.A $D.Dim6。
C语言中运算对象必须是整型的运算符是()。
A。
% B。
/ C.! D.**7.可在C程序中用作用户标识符的一组标识符是()。
A。
void define WORD B.as_b3 _123 IfC。
For -abc case D.2c DO SIG8。
若变量已正确定义并赋值,符合C语言语法的表达式是()。
A。
a=a+7; B.a=7+b+c,a++ C.int(12.3%4) D.a=a+7=c+b9。
以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但可以这样说:实型变量中允许存放整型值B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0D。
已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为310.以下叙述中正确的是()。
A。
在C程序中无论是整数还是实数,只要在允许的范围内部都能准确无误的表示B。
C程序由主函数组成C.C程序由若干函数组成D.C程序中只允许包含一个函数11。
VC6。
0中int类型变量所占字节数是()。
A。
1 B。
2 C。
3 D。
412.合法的八进制数是()。
A。
0 B.028 C.—077 D。
C语言作业题【输出形式】用户在下一行显示输出结果【样例输入】3.47【样例输出】3【样例说明】与输入值3.47接近的整数为3和4,3.47比3.5小,舍掉小数部分,结果为3。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0104.c。
当前编程题:第一次作业--- 计算空格换行个数5. 【问题描述】编写一程序,分别计算所输入的字符串中空格,换行符的个数。
【输入形式】输入可以是键盘上的任意字符。
【输出形式】分别输出空格,换行符的个数,输出的结果一行显示,数字之间以空格格开。
【输入样例】bb ss pp=fz【输出样例】2 1【样例说明】字符b与s之间有一个空格,s与p之间有一个空格,p与f之间有一个换行。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0105.c。
当前编程题:第一次作业--- 整数组合(选做题)6. 【问题描述】假设unsigned short类型占16位,x、y、z都是short类型。
编写一程序,从键盘输入x,y 的值(十进制形式),然后将x的高8位作为z的高8位,y的高8位作为z的低8位,最后输出z的值(十进制形式)。
【输入形式】以十进制形式输入x和y的值,以空格隔开。
【输出形式】以十进制形式在新的一行上输出z值。
【输入样例】840 2177【输出样例】776【样例说明】840的二进制形式为:0000 0011 0100 10002177的二进制形式为:0000 1000 1000 0001将840的高8位作为结果的高8位,2177的高8位作为结果的低8位,所以结果为:0000 0011 0000 1000,即十进制形式为:776【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0106.c。
当前编程题:第二次作业--- 数字排序1. 【问题描述】编写一个程序,将输入的三个数从小到大排列出来。
【输入形式】用户在第一行输入三个数字,每个数字用空格分开。
No.: Name:第1讲C语言概述注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。
一、选择题1. 一个C程序的执行是从A 。
A) 本程序main函数开始,到main函数结束B) 本程序文件第一个函数开始,到最后一个函数结束C) 本程序文件第一个函数开始,到本main函数结束D) 本程序main函数开始,到本程序文件最后一个函数结束2. 以下叙述不正确的是D 。
A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3. 以下叙述正确的是C 。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) 语言本身没有输入输出语句D) C程序的每行中只能写一条语句4. 一个C语言程序是由B 。
A) 一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5. 以下叙述中正确的是C 。
A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点6. 下列叙述中正确的是D 。
A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言的函数可以嵌套调用7. 以下叙述中正确的是A 。
A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main函数必须放在其他函数之前D) 所有被调用的函数一定要在调用之前进行定义8. C语言规定,在源程序中,main函数的位置C 。
A) 必须在最开始B) 必须在系统调用的库函数的后面C) 可以任意D) 必须在最后9. 下列选项中不是结构化程序基本结构的是B 。
计算机二级考试真题及答案c语言一、单项选择题(每题1分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. unionC. intD. void答案:D2. 若有定义int a=5; 则执行以下语句后,变量a的值是多少?A. a=(a++)+(++a)+a;B. a=a--+(++a)+a;C. a=(a++)+(++a)+a--;D. a=(a++)+(++a)+a--;答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. /B. %C. *D. ^答案:C4. 下列哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 在C语言中,以下哪个选项是合法的数组声明?A. int a[5];B. int a[];C. int a[5][5];D. int a[5,5];答案:A6. 若有定义int x=10; 则执行以下语句后,变量x的值是多少?A. x=x+++x;B. x=++x+x--;C. x=x--+x++;D. x=x+++x--;答案:B7. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,以下哪个选项是合法的指针声明?A. int *p;B. int *p[];C. int (*p)();D. int (*p)[5];答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do{}while(0)D. all of the above答案:D10. 在C语言中,以下哪个选项是合法的函数声明?A. int func();B. void func(int a);C. int func(int a, int b);D. all of the above答案:D11. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. all of the above答案:A12. 在C语言中,以下哪个选项是合法的文件操作函数?A. fopenB. fcloseC. freadD. all of the above答案:D13. 在C语言中,以下哪个选项是合法的字符串操作函数?A. strcpyB. strncpyC. strcatD. all of the above答案:D14. 在C语言中,以下哪个选项是合法的动态内存分配函数?A. mallocB. callocC. reallocD. all of the above答案:D15. 在C语言中,以下哪个选项是合法的位操作运算符?A. &B. |C. ^D. all of the above答案:D16. 在C语言中,以下哪个选项是合法的预处理指令?A. #includeB. #defineC. #ifdefD. all of the above答案:D17. 在C语言中,以下哪个选项是合法的类型转换运算符?A. (int)xB. (float)xC. (char)xD. all of the above答案:D18. 在C语言中,以下哪个选项是合法的条件运算符?A. ?B. :C. ||D. &&答案:A19. 在C语言中,以下哪个选项是合法的多维数组声明?A. int a[5][5];B. int a[][5];C. int a[5][];D. int a[][];答案:A20. 在C语言中,以下哪个选项是合法的枚举类型声明?A. enum color {red, green, blue};B. enum {red, green, blue};C. enum color {0, 1, 2};D. all of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用关键字________声明一个函数。
c语言c操作题库及详解答案C语言C操作题库及详解答案1. 请编写一个C程序,实现两个整数的加法运算,并输出结果。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数相加的结果是:%d\n", sum);return 0;}```2. 编写一个C程序,实现字符串的复制功能。
答案:```c#include <stdio.h>#include <string.h>int main() {char src[] = "Hello, World!";char dest[50];strcpy(dest, src);printf("复制后的字符串是:%s\n", dest);return 0;}```3. 请编写一个C程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘是:%d\n", num, factorial(num)); return 0;}```4. 编写一个C程序,实现判断一个数是否为素数。
答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1)return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0)return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d是素数。
计算机二级C上机考试题库及答案一、单项选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};C. char str[] = {"Hello, World!"};D. char str[] = "Hello, World!";答案:A2. 下列哪个函数用于将字符串s1复制到s2中?A. strcat(s1, s2);B. strcpy(s1, s2);C. strcmp(s1, s2);D. strncpy(s1, s2, n);答案:B3. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A4. 如果一个变量被声明为static int,那么这个变量的生命周期是?A. 只在函数调用期间B. 程序运行期间C. 只在程序启动时D. 只在程序结束时答案:B5. 在C语言中,以下哪个运算符用于计算两个整数的差?A. +B. -C. *D. /答案:B6. 以下哪个选项不是C语言中合法的标识符?A. _myVarB. my_varC. 2ndVarD. var$name答案:C7. 在C语言中,以下哪个选项是正确的数组定义方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4};答案:A8. 以下哪个选项是正确的C语言注释方式?A. /* This is a comment */B. // This is a commentC. //* This is a commentD. /* This is a comment */答案:A9. 在C语言中,以下哪个选项是正确的多行字符串定义方式?A. char str[] = "Line1\nLine2";B. char str[] = 'Line1\nLine2';C. char str[] = "Line1\nLine2";D. char str[] = "Line1\nLine2";答案:A10. 在C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student {int id;char name[];};C. struct Student {int id;char name[50] = "John Doe";};D. struct Student {int id;char name[];};答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以对变量进行自增操作。
计算机二级考试c语言试题及答案计算机二级考试C语言试题及答案一、选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x123B. 123.0C. 123e2D. 123.0L答案:A2. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", 'Hello, World!'D. "Hello, World!'"答案:A4. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a; int b) { return a + b; }C. int add(int a, int b) { return a - b; }D. int add(a, b) { return a + b; }答案:A5. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. int array = 10;答案:A二、填空题1. 在C语言中,用于输入的函数是___________。
答案:scanf2. 在C语言中,用于输出的函数是___________。
答案:printf3. 在C语言中,用于计算两个整数的差的运算符是___________。
答案:-4. 在C语言中,用于定义一个整型变量的关键字是___________。
答案:int5. 在C语言中,用于定义一个字符型变量的关键字是___________。
c语言补考试题及答案一、选择题(每题2分,共10分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. =D. :答案:D3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 下列哪个选项是正确的C语言变量声明?A. int a = 10, b = 20;B. int a = 10; b = 20;C. int a = 10; int b = 20;D. int a = 10, b = 20;答案:A5. C语言中,用于定义一个空指针的关键字是:A. NULLB. voidC. 0D. none答案:A二、填空题(每题2分,共10分)1. 在C语言中,字符常量可以用单引号括起来,例如:'A'。
()答案:正确2. C语言中,一个函数可以返回多个值,通过使用指针参数。
()答案:正确3. C语言中,数组的索引是从0开始的。
()答案:正确4. 在C语言中,关键字`const`用于定义一个常量。
()答案:正确5. C语言中,`sizeof`运算符用于获取变量的大小。
()答案:正确三、简答题(每题5分,共20分)1. 请简述C语言中指针的作用。
答案:指针在C语言中用于存储变量的内存地址,它允许程序员直接访问和操作内存,从而提高了程序的灵活性和效率。
2. 解释C语言中函数原型的作用。
答案:函数原型在C语言中定义了函数的名称、返回类型和参数类型,它允许编译器在编译时检查函数调用的一致性,确保参数类型和数量正确。
3. 描述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被用作指向数组首元素的指针。
数组和指针紧密相关,数组的每个元素都可以通过指针访问。
一、运行程序观察结果
1、//观察垃圾数据
#include <iostream.h> void main( ) { int a;cout<<a<<endl;}
2、//观察数据溢出的结果
#include <iostream.h> void main( ) { short int a; a=32768;cout<<a <<endl;}
3、//观察从键盘输入超范围数据的结果
#include <iostream.h> void main( ) { short int a; cin>>a; cou t<<a<<endl;}
4、//观察字符型数据的存储、大小写字母转换
#include <iostream.h> void main( ) { char ch; ch=‘A
‘; cout<<ch<<int(ch)<<endl; cout<<ch+32<<char(ch+32)<<endl;}
修改ch=‘A‘;为ch=‘B‘;、ch=‘C‘;观察。
二、调试程序(先自行修改,再使用系统调试)
1、
#include <iostream>;using namespace std; int main(void ){ double a;b ; sum; cout<<’请输入两个
数:’; cin>>a>>b>>endl; sum=a+b; cout<<"a"<<+<<b<<"="<< sum <<’/n’;
2、
#include <iostream.h>using namespace std;void mian( ){double r;dou ble area(0.0);double circum=0.0;cout<<’请输入半径:’
<<endl;cin>>r;area=3.14*R*R;circum=2*3.14*r;cout<<"面积
为:"<< “area” <<”\n”;cout<<"周长为:"<< circum <<endl;}
第五周补充上机题
一、运行程序,观察结果
1、//扩展内容:观察使用转义字符输出字符。
转义符用反斜线后跟字符的
ASCII码值的三位八进制或两两位十六进制表示。
#include <iostream.h>
void main()
{ char c1,c2,c3,c4,c5;
c1=‘\101‘; //等同于c1=‘A‘;101是‘A‘的ASCII码65的八进制表示
c2=‘\132‘; //等同于c2=‘Z‘;132是‘Z‘的ASCII码90的八进制表示
c3=‘\141‘; //等同于c3=‘a‘;141是‘a‘的ASCII码97的八进制表示
c4=‘\172‘; //等同于c4=‘z‘;172是‘z‘的ASCII码122的八进制表示
c5=‘\x7a‘; //等同于c5=‘z‘;x7a是‘z‘的ASCII码122的十六进制表示
cout<<‘\a‘<<‘\t‘<<c1<<‘\t‘<<c2<<endl;
cout<<‘\a‘<<‘\t‘<<c3<<‘\t‘<<c4<<endl;
cout<<‘\a‘<<‘\t‘<<c5<<endl;
}
2、
#include <iostream.h>
#include <iomanip.h> //使用setw必须使用该预编译命令
void main()
{int a(3),b(4),c1,c2,d1,d2;
c1=a+++b; // ++运算符左结合
c2=a+(++b);
d1=5%-10; // %最终的符号由被除数的符号决定
d2=-5%10;
//set(n)为设置后面紧接着输出的数据共占据n位宽度,数据不足n位在前面加空格
cout<<a<<setw(8)<<b<<‘\n‘;
cout<<c1<<‘\t‘<<c2<<"\n";
cout<<d1<<" "<<d2<<endl;
}
3、//观察输出格式控制
#include <iostream>
using namespace std; //使用fixed必须使用using命令
void main()
{double x; x=510+3.2e3-5.6/0.03; long double y;
x=123.4567890123456; //系统默认输出精度为6位有效数字,数值输出时会按这个精度进行必要的四舍五入
y=123.4567890123456789; cout<<"x="<<x<<endl;
cout.precision(9); //后面输出的数据有效位数是n位
cout<<"y="<<y<<endl;
cout<<fixed; // 后面输出的数据使用定点数形式输出
cout.precision(10); //和fixed合用功能为:后面输出的数据保留n位小数
cout<<"y="<<y<<endl;
cout.width(10); // 后面紧接着输出的数据共占据n位宽度,数据不足n位,
默认在前面填充空格
cout<<"baby"<<endl;
cout.width(10);
cout.fill(‘*‘); // 扩展内容:将‘*‘设置为填充字符
cout<<"baby"<<endl; }
,b; int i,j; i=10;j=20;
,j="<<j<<endl;
补充: 2+++i是错误的,++左结合,但2不是 */
,b="<<b<<endl;
,j="<<j<<endl;
,b="<<b<<endl;
,j="<<j<<endl;。