C语言复习题及答案老师给的
C语言复习60题

01计算机本身最擅长的能力是?A、推理B、想像C、重复D、分析正确答案: C、重复。
02 计算机(CPU)能够直截了当运行人类编写的程序A、√B、×正确答案: B、×、03编程语言是与计算机交谈的语言A、√B、×正确答案: B、×。
04 关于C语言,以下讲法错误的有:A、C语言是与Unix操作系统一同发展起来的B、C语言不能写图形界面的软件C、C语言一般是编译执行的D、C语言诞生于1970年代正确答案: B、C语言不能写图形界面的软件、06 IDE的中文翻译是什么?正确答案是:集成开发环境、07 给定:int a,b; 以下哪些scanf的使用是正确的?A、scanf("%d”,&a); scanf(”%d",&b);B、scanf(”%d %d”, &a, &b);C、scanf("%d, %d", &a,&b);D、scanf("%d%d”, a, b);正确答案: A、scanf("%d”,&a); scanf(”%d", &b);。
B、scanf(”%d%d", &a, &b);、C、scanf(”%d,%d”,&a,&b);、08 以下哪些是有效的变量名?A、mainB、4everC、monkey—kingD、__int正确答案:A、main。
D、__int。
09给定:inta,b; scanf("%d %d", &a, &b);则以下哪些输入方式是正确的?A、1 2B、1,2C、1(回车)2D、1、2正确答案:A、1 2。
C、1(回车)2、10给定以下代码段:inta,b=0;则a的初始值是0A、√B、×正确答案: B、×、11写出下式的运算结果:10/3、0*3 正确答案是:10、0。
12写出下式的运算结果:10/3*3、0正确答案是:9、0。
c语言期末复习试题附答案

c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
c语言期末考试题库大题及详解答案

c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
c语言程序设计考试题库及答案

c语言程序设计考试题库及答案1. 选择题1.1 下列关于C语言的描述,错误的是:A. C语言是一种过程式编程语言B. C语言支持面向对象编程C. C语言支持结构化编程D. C语言具有丰富的库函数答案:B1.2 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. function答案:C1.3 下列选项中,哪个不是C语言中的合法变量名?A. _myVarB. myVar2C. 2ndVarD. var$答案:D2. 填空题2.1 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2.2 C语言中,用于输入数据的库函数是______。
答案:scanf2.3 C语言中,用于输出数据的库函数是______。
答案:printf3. 简答题3.1 简述C语言中数组的定义方式。
答案:在C语言中,数组可以通过指定数据类型和数组大小来定义。
例如,定义一个整型数组可以写作:int arrayName[arraySize];。
3.2 解释C语言中的指针是什么,并给出一个指针的定义示例。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
定义指针的示例:int *ptr; 这里ptr是一个整型指针。
4. 编程题4.1 编写一个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;}```4.2 编写一个C语言函数,实现字符串反转的功能。
答案:```cvoid reverseString(char *str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```。
c语言考试题及答案详解

c语言考试题及答案详解C语言考试题及答案详解一、选择题1. 下列哪个是C语言的关键字?A. voidB. mainC. returnD. print答案:A2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是 ____ 。
答案:int2. 以下代码段的输出结果是____。
```cint a = 5;printf("%d", a++);```答案:5三、简答题1. 请简述C语言中数组的定义方式。
答案:在C语言中,数组的定义方式是通过指定数据类型、数组名和数组的大小。
例如,定义一个整型数组,大小为10,可以写作:int array[10];四、编程题1. 编写一个C程序,实现求两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two numbers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("Sum is: %d\n", sum);return 0;}```五、论述题1. 论述C语言中指针的概念及其重要性。
答案:指针是C语言中的一个重要概念,它存储了变量的内存地址。
指针的重要性在于它允许程序员直接操作内存,这使得动态内存分配、数组操作、函数参数传递等成为可能。
指针的使用提高了程序的灵活性和效率,但也增加了编程的复杂性。
六、案例分析题1. 给定以下C语言代码段,分析其功能并指出可能存在的问题。
```cint func(int *p) {return *p * 10;}int main() {int a = 5;printf("%d\n", func(&a));return 0;}```答案:该代码段定义了一个函数`func`,它接受一个整型指针作为参数,并返回该指针指向的值乘以10的结果。
(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
c语言试题及答案

c语言试题及答案C语言试题及答案一、选择题1. 在C语言中,以下哪个是正确的数据类型?A. 整数型B. 浮点型C. 字符型D. 所有选项答案:D2. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. !D. 所有选项答案:D3. 在C语言中,哪个关键字用于定义一个函数?A. intB. voidC. functionD. return答案:A二、填空题1. 在C语言中,一个基本的程序结构由_____、_____、_____三个部分组成。
答案:预处理指令;函数定义;语句2. 一个C语言程序总是从_____函数开始执行。
答案:main3. 在C语言中,若要实现循环,可以使用_____、_____、_____等循环结构。
答案:for;while;do-while三、简答题1. 简述C语言中数组的定义和使用。
答案:在C语言中,数组是一种数据结构,用于存储具有相同数据类型的元素集合。
数组定义的一般形式为:类型名数组名[常量表达式],其中类型名是数组元素的数据类型,数组名是数组的标识符,常量表达式是数组中元素的数量。
数组的使用包括初始化、访问和修改元素等。
2. 解释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语言期末复习试卷

复习题(一)1。
用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。
【答案】编译目标2。
下列符号串中,属于C语言合法标识符的是()①else ②a-2 ③_00 ④00【答案】③3.下列说法中,正确的是()①主函数名是由程序设计人员按照“标识符”的规则选取的②分号和回车符号都可以作为一个语句的结束符号③在程序清单的任何地方都可以插入一个或多个空格符号④程序的执行,总是从源程序清单的第1行开始【答案】③4.-12345E-3代表的十进制实数是________________________.【答案】—12.3455.设字符型变量ch中存放字符“A”,则执行“ch+++2”后,ch中的字符是________。
【答案】B6.设字符型变量ch1中存放的字符是“A",字符型变量ch2中存放的字符是“B”,则执行“!(ch1=’B')&&(ch2='C')”的运算后,变量ch2中的字符是_____________.【答案】B6-1.设整型变量m,n,a,b,c,d均为1,执行“(m=a〉b)&&(n=a>b)”后m,n 的值是()①0,0 ②0,l ③1,0 ④1 ,l【答案】②。
7.设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是_______________. 【答案】l8.在C语言中,如果某个关系表达式成立(真),则该关系表达式的值是____;如果某个逻辑表达式为假,则该逻辑表达式的值是_________.【答案】1 09.设有整型变量x,如果表达式“!x”值为0,则x的值为_________;如果表达式“!x"值为1,则x的值为___________。
【答案】非010.下列表达式中,不属于逗号表达式的是()①a=b,c ②a,b=c ③a=(b,c) ④a,(b=c)【答案】③11.在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【答案】多分支12.在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?(B)A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为( D )x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是(C )A)0,0 B) 0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是( C )。
sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是(A)。
main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时(A)。
x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为(D)。
A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是(C)。
A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是(C )。
A)a=(a[1]+a{2})/2; B)a*=*a+1;C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是( D )。
A)scanf("%d", &a); B)scanf("%d", p);C)printf("%d", a); D)printf("%d", p);11、下述程序的输出结果是(D)。
#include <stdio.h>void main( ){ struct complex{ int x ;int y;}um[2]={1,3,2,7};printf(“%d”,um[0].y/cnum[0].x*cnum[1].x) ;}A)0 B)1 C)3 D)612、下述程序的输出结果是(B)。
#include <stdio.h>void main( ){ union{ unsigned char c ;unsigned int i[4];}z ;z.i[0]=0x39 ;z.i[1]=0x36;printf(“%c”,z.c);}A)6 B)9 C)0 D)313、下述关于C语言文件操作的结论中,(B)是正确的。
A)对文件操作必须先关闭文件B)对文件操作必须先打开文件C)对文件操作顺序无要求D)对文件操作前必须先测试文件是否存在,然后再打开文件14、以下程序的输出结果是(C)。
main(){ char ch[3][4]={"123","456","78"},*p[3];int i;for (i=0;i<3;i++)p[i]=ch[i];for (i=0;i<3;i++)printf("%s",p[i]); }A)123456780 B)123 456 780 C) 12345678 D) 147 15、对于所定义的二维数组a[2][3],元素a[1][2]是数组的第( D )个元素。
A)3 B)4 C)5 D)61、赋值运算符的优先级低于关系运算符(√)。
2、条件运算符的结合方向是“自左向右”(×)。
3、C语句的循环语句中循环体如果包含一个以上的语句,必须以复合语句形式出现(√)。
4、C程序中的函数不能嵌套调用,但可嵌套定义(×)。
5、若自定义函数要求函数名返回一个值,则该函数体中必须要有return语句( ×)。
6、当形式参数为指针变量名时,实际参数可为指针变量名、数组名或其它类型变量的首地址(√)。
7、若有说明:static int a[3][4];,则数组a中各数组元素可在程序的编译阶段得到初值0(√)。
8、若用数组名作为函数调用时的实参,则实际上传递给形参数组的是数组的第一个元素的值(√)。
9、利用指针和结构体类型可以构成表、树等复杂的数据结构(√)。
10、共用体变量的地址和它的各成员的地址都是同一地址(√)。
11、printf函数中的“%0”格式参数表示用来输出unsigned型数据(×)。
12、在一个C程序中,所有要使用的变量和要调用的函数都必须在main( )函数中定义(×)。
13、赋值运算符的结合性是“自右至左”(√)。
14、一个C程序可以由多个源程序文件组成(√)。
15、do-while语句构成的循环,当while语句中的表达式的值为零时结束循环(√)。
三、写出下面各程序的运行结果1、#include<stdio.h>main ( ){int i=0, j=0, k=0, m;for (m=0; m<4; m++)switch (m){case 0: i=m++;case 1: j=m++;case 2: k=m++;case 3: m++;}printf(“\n%d, %d, %d, %d”, i, j, k, m);}2、#include<stdio.h>main ( ){int i=1;while (i<=15)if (++i% 3!=2)continue;elseprintf(“%d”, i);}3、#include<stdio.h>add1(int a[ ], int n){ int i;for(i =0;i<n;i++) a[i]++;} main(){ static int array[ ]={0,1,2,3,4,5,6,7,8,9}; int j;add1(array,10);for(j=0;j<10;j++)printf(“%d”,array[j]);}4、union data{ long w;float x;int y;char z;} beta;main( ){ beta.w=123456;beta.y=888;beta.x=3.14;beta.z=’x’;printf(“%c”,beta.y);}5、# include <string.h>typedef struct student{char name[10];long sno;float score;}STU;main( ){STU a={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;d=a;if(strcmp(,)>0) d=b;if(strcmp(,)>0) d=c;printf("%ld%s\n",d.sno,p->name);}四、程序填空1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将缺省语句填上。
main ( ){float x, amax, amin;scanf (“%f”, &x);amax=x; amin=x;while ( ①){if ( ②) amax =x;if ( ③) amin =x;scanf (“%f”, &x);}printf(“amax=%f, amin=%f\n”, amax, amin);}2、下面的程序是用指针来交换两个数据,请将缺省语句填上。
void exchange( int *p ,int *q){ int t;t=*p; *p=*q; *q=t;}main(){ int a,b,*x,*y;a=10;b=20;x=&a;①②printf(“%d %d\n”,*x, *y);}五、程序设计题有10个学生,每个学生的数据包括学号、、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、、3门课的成绩、平均分数。
2、用自定义函数和数组求n个数的平均值,并用主函数调用参考答案:一、单项选择题1、B2、D3、C4、C5、A6、A7、D8、C9、C10、D11、D 12、B 13、B 14、C 15、D二、判断题(√)2、(×)3、(√)4、(×)5、(×)6、√)7、(√)8、(√)9、(√)10、(√)11、(×)12、(×)13、(√)14、(√)15、(√)三、写出程序的运行结果1、答案是:0,1,2,52、答案是:2 5 8 11 143、答案是:4、答案是:x5、答案是:2002Shangxian四、程序填空1、答案是:①x>=0 ②x>amax ③x<amin2、答案:①y=&b; ②exchange(x,y);五、程序设计题1、参考答案:#define N 10struct student{ char num[6];char name[8];int score[4];float ave;} stu[N];main(){ int i,j,max,maxi,sum;float average;/*输入*/for ( i=0; i<N; i++){ printf(“\nInput scores of student %d,\n”,i+1);printf(“No.:”);scanf(“%s”,stu[i].num);printf(“name:”);scanf(“%s”,stu[i].name);for(j=0;j<3;j++){ printf(“score %d:”,j+i);scanf(“%d”,&stu[i].score[j]);}}/*计算*/average=0;max=0;maxi=0;for(i=0; i<N; i++){ sum=0;for(j=0; j<a; j++)sum+=stu[i].score[j];stu[i].avr=sum/3.0;average+=stu[i].avr;if (sum>max){ max=sum;maxi=i;}}average/=N;/*打印*/printf(“NO. name score1 score2 score3 average\n”);for(i=0; i<N; i++){ printf(“%s%10s”, stu[i].num , stu[i].name);for(j=0; j<3; j++)printf(“%9d”,stu[i].score[j]);printf(“%8.2f\n”,stu[i].avr);}printf(“average=%6.2f\n”,average);printf(“The highest score is : %s, score total: %d”, stu[maxi].name,max);}2、参考答案:float average( float a[ ], int n){ float aver=0;int j;for(j=0;j<n;j++)aver=aver+a[j];aver=aver/n;return aver;} main(){ float x[10],y;int j;for(j=0;j<10;j++) scanf(“%f”,&x[j]);y=average(x,10);printf(“aver=%.2f\n”,y); }复习B:一、单项选择题1、逗号表达式2,4,6,8的值为(d )。