c语言练习
C语言练习题及其答案

C语言练习题及其答案C语言练习题及其答案C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。
C语言能以简易的方式编译、处理低级存储器。
下面是店铺帮大家整理的C语言练习题及其答案,仅供参考,大家一起来看看吧。
C语言练习题及其答案1一、选择题(7分,每小题0.5分)1.C语言源程序的基本单位是(B)。
A过程 B函数 C子程序 D标识符2.下列程序的输出结果是(C)。
main( ){ int a=7,b=5;printf("%d ",b=b/a);}A 5B 1C 0 D不确定值3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(B)。
A 7B 8 C9 D 24.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534; a=(int)125.521%4; a=5<<2;A 125,31,1B 125,1,20C 125,31,20D 125.534,2,205.设有如下程序段,下面描述中正确的是(C)。
int k=10;while(k=0) k=k-1;A循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D 循环体语句执行一次6.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。
A p="abcd";B a="abcd";C *p="abcd";D *a="abcd";13.设有以下程序段,则值为6的表达式是()。
struct st { int n; struct st *next;};static struct st a[3]={5,&a[1],7,&a[2],9,0},*p;p=&a[0];A p++->nB ++p->nC p->n++D (*p).n++14.C语言中的文件类型只有()。
《C语言》练习题及答案解析

《C语言》练习题及答案解析一.选择题1.下列字符序列中,不可用作C语言标识符的是(B)。
A.abc123 B.no.1 C._123_ D._ok2.一个C语言源程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成3. 正确的C语言标识符是(A )。
A._buy_2 B.2_buy C.?_buy D.buy?4.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为(A)。
A.’D’B.68 C.不确定的值D.’C’5.下列说法中,错误的是(A)。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有且仅有一个主函数6.有如下程序段,从键盘输入数据的正确形式应是(B)。
(注:└┘代表空格)float x,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A.123 B.x=1,y=2,z=3C.1,2,3 D.x=1└┘ y=2└┘ z=37.在C语言中,char型数据在内存中的存储形式是(D)。
A.补码B.反码C.原码D.ASCII码8. 下列符号中,不属于转义字符的是(B )。
A.\\ B.\0xAA C.\t D.\09. 不属于C语言关键字的是(D)。
A.int B.break C.while D.character10. 以下说法中正确的是(C)。
A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分11. C语言程序的基本单位是(C)。
C语言初学者练习题目10条

C语言初学者练习题目10条1. 关于C语言初学者练习题目10条在学习编程语言的过程中,练习题目是一个重要的环节,可以帮助初学者巩固基本知识和提升解决问题的能力。
本文将介绍10个适合C语言初学者的练习题目,并分析每个题目的解题思路。
题目一:输出Hello, World!这是C语言中最基础的练习题目,通过编写一个简单的程序来输出"Hello, World!",帮助初学者熟悉C语言的基本语法和编译运行过程。
题目二:计算两个整数之和编写一个程序,接收用户输入的两个整数,并输出它们的和。
这个练习可以让初学者熟悉C语言的基本输入输出操作和基本的数学运算。
题目三:判断一个数是否为素数编写一个程序,接收用户输入的一个整数,并判断该数是否为素数。
这个练习可以让初学者熟悉使用循环和条件语句进行判断,并学习如何优化算法以提高判断效率。
题目四:计算数组元素的平均值编写一个程序,接收用户输入的一个整型数组,并计算出数组元素的平均值。
这个练习可以让初学者熟悉数组的基本使用和循环的结合运用。
题目五:查找数组中的最大值和最小值编写一个程序,接收用户输入的一个整型数组,并找出数组中的最大值和最小值。
这个练习可以让初学者学习如何定义和使用函数,并加深对数组的理解。
题目六:实现简单的字符串翻转编写一个程序,接收用户输入的一个字符串,并将其翻转输出。
这个练习可以让初学者学习如何处理字符串类型的数据,并锻炼对数组和循环的综合运用能力。
题目七:实现简单的冒泡排序编写一个程序,接收用户输入的一个整型数组,并使用冒泡排序算法对数组进行排序。
这个练习可以让初学者深入理解冒泡排序算法的原理,并学习如何进行数组的元素交换。
题目八:实现简单的查找算法编写一个程序,接收用户输入的一个整型数组和一个目标值,在数组中查找目标值并输出其下标。
这个练习可以让初学者学习不同查找算法的实现原理,并熟悉如何使用循环进行遍历操作。
题目九:实现简单的递归算法编写一个程序,使用递归算法计算斐波那契数列的第n项值,并将其输出。
C语言基础练习100题(含答案)

("\n");
则输出结果是.
A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,10
18、已知有型变量2.54.7,整型变量7,
则表达式3*()()%2/4的值是.
A) 2.4 B)2.5 C) 2.75 D) 0
19、设有以下语句1033,则x的值是
{ 010;
()
3;
("\n");
}
A) 3,0 B) 0,0 C) 0,1 D) 3,1
35、能够完成如下函数计算的程序段是.
┌ -1 x<0
┤ 0 0
└ 1 x>0
A) 1;B) (x>=0)
(0)(x>0) 1;
(x>0) 1;0;
0;1;
C) 0;D) 1;
(x>=0)(x>0) 1;
23、在C语言中,以下叙述不正确的是.
A) 在C程序中,无论是整数还是实数,都能被准确无误的表示
B) 在C程序中,变量名代表存储器中的一个位置
C) 静态变量的生存期与整个程序的生存期相同
D) C语言中变量必须先定义后引用
24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是.
A) 10<a<15 B) 11121314
11、阅读下面的程序
<>
()
{
;
010;
9;
("");
}
则程序的运行结果是.
A) 1,19B) -1,19C) 1,17 D) -1,17
12、阅读下面的程序
C语言基础练习题(含答案)

第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3C.For D.2a define _123 -abcDOWORD IF Casesizeof5.下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\tD.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signedC.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.Void C._3com_ D.int9.一个C程序是由()。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。
C语言练习题(带详解答案)

C语言练习题(带详解答案)一单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
C语言200道练习试题和答案

A)<=
B)=
C)%
D)&&
26.表达式(a=2,3) , a+1的值是【 C 】。
A)0 B)2
C)3
D)4
27.若执行printf("%d\n", strlen("a\n\"\x41"))语句其输 出结果是【 D 】。
A)8 B)7 C)6
D)4
28.在循环语句的循环体中执行break语句, 其作用是【 A 】。 A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行
则输出是【 d 】 A)1234.56 1234 B)1234.57 1235 C)1234.56 1235 D)1234.57 1234
43.如果有
int a, b; scanf(“%d,%d”, &a, &b);语句,
则输入数据时,只可以用【 d 】作为输入的分隔符
A)TAB键 B)空格
C)回车
C)20,10 D)20,20
24.若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是【 B 】。
A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定
25.在以下一组运算符中,优先级最高的运算符是【 C 】
int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678
c语言入门练习题

C语言入门练习题一、基础知识篇1.1 变量与常量1. 定义一个整型变量并赋值为10。
2. 声明一个浮点型常量,其值为3.14。
3. 将字符型变量 'A' 赋值给另一个字符型变量。
1.2 数据类型1. 将一个整型变量转换为浮点型变量。
2. 将一个长整型变量赋值给一个短整型变量。
3. 编写一个程序,输出不同数据类型所占的字节数。
1.3 运算符1. 计算5加3乘2的结果。
2. 判断两个整型变量是否相等。
3. 使用自增运算符使变量i的值增加1。
二、控制结构篇2.1 顺序结构1. 编写一个程序,输出1到10的整数。
2. 输出用户输入的两个整数中的较大值。
3. 计算并输出圆的面积(给定半径)。
2.2 选择结构1. 判断一个整数是正数、负数还是零。
2. 根据用户输入的成绩,输出对应的等级(A、B、C、D、E)。
3. 编写一个程序,实现石头剪刀布的游戏。
2.3 循环结构1. 计算1到100所有整数的和。
2. 输出所有的水仙花数(一个三位数,其各位数字的立方和等于该数本身)。
3. 使用循环结构输出九九乘法表。
三、函数篇3.1 函数定义与调用1. 编写一个函数,计算两个整数的和。
2. 定义一个函数,实现字符串的复制。
3. 创建一个函数,判断一个数是否为素数。
3.2 递归函数1. 使用递归函数计算斐波那契数列的第n项。
2. 编写一个递归函数,实现字符串的逆序输出。
3. 利用递归函数求解汉诺塔问题。
四、数组篇4.1 一维数组1. 初始化一个包含10个整数的数组,并输出其元素。
2. 计算一维数组中所有元素的和。
3. 找出一维数组中的最大值和最小值。
4.2 二维数组1. 创建一个3行4列的二维数组,并输出其元素。
2. 计算二维数组对角线元素的和。
3. 实现矩阵的转置。
五、指针篇5.1 指针基本操作1. 声明一个整型变量和一个指向该变量的指针,并输出指针所指向的值。
2. 使用指针实现两个整数的交换。
3. 编写一个函数,通过指针参数修改传入的字符串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题(共15小题,每小题2分,共30分)1、下列字符串是合法标识符的是(A )。
A. _ghg87B. 9hgffC. hg%dd1D. long2、下列是C合法语句的是( B )。
A. a+1+2B. a=x+1;C. a>=bD. scanf(“%d,%d,x,y”);3、下列有关运算符优先顺序的正确描述是(A )。
A. 关系运算符<算术运算符B. 关系运算符<赋值运算符C. 关系运算符>算术运算符D. 条件运算符<赋值运算符4、C语言中要求操作数必须是整数的运算符为( C )。
A. +B. *C. %D. =5、设x、y、z是int型变量,且x=3、y=4、z=5,则下列表达式的值为0的是(D )。
A. …x‟&&‟y‟B. x<=yC. x||y+z&&yD. !(x<y)&&z6、设d是一字符类型变量,则下列错误的是( C )。
A. d=97;B. d=‟\t‟;C. d=”a”;D. d=‟d‟;7、下列常量中非法的C语言常量是(B )。
A. 97B. 086C. 0x56aD. 0658、当x=3,y=z=4,表达式(z>=y>=x)?1:0和z>=y&&y>=x的值是( B )。
A. 1 1B. 0 1C. 0 0D. 1 09、设int a; float f; double i; 则表达式10+a+i*f结果的数据类型为(C )。
A. 整型B. 浮点型C. 双精度型D. 不确定10、C语言有( C )基本的程序结构。
A. 1种B. 2种C. 3种D. 4种11、一个整型数组,共有20个元素,其定义和使用正确的是( D )。
A. int a[20]; a[1]=a[20]+1;B. int a[19]; a[19]=a[1]+2;C. int a[19]; a[0]=a[0]*2;D. int a[20]; a[0]=a[1]+a[19];12、若int x=5, n=5; 则执行表达式x+=n++后变量x和n的值分别为( C )。
A. 10 5B. 6 6C. 10 6D. 6 1013、下面定义整型变量a,b,c并全部赋初值5,则正确的是( C )。
A. int a, b, c=5;B. int a=b=c=5;C. int a=5,b=5,c=5;D. a=b=c=5;14、判断字符变量c为小写字母的逻辑表达式是(D )A. …a‟<=c<=‟z‟B. (c>=a)||(c<=z)C. (…a‟>=c)||(…z‟<=c)D. (c>=‟a‟)&&(c<=‟z‟)15、下面定义一个具有5个元素的整型数组,并全部赋初值为1,其中正确的是(D )。
A. int a[5]={ 1*5};B. int a[5]={1}*5;C. int a[5]={1};D. int a[5]={1,1,1,1,1};二、读程序,严格按照输出格式写出程序的运行结果。
(共5小题,每小题3分,共15分)1、若从键盘上输入2,则下列程序的执行结果为(a=2 )。
{ int a;scanf(“%d”,&a);if(a++<3) printf(“%a=d\n”,- -a); else printf(“a=%d\n”,++a);}2、下列程序段的输出结果为(11,9,11,17 )。
int a=011,b=0x11;printf(“%o,%d,%x,%d”,a,a,b,b);3、下列程序执行后,x的值为(20 )。
#include <stdio.h>void main( ){ int a=0,b=0,c=5,x;if(a&&c) x=5;else if(!b)if(!c) x=15;else x=20;}4、下列程序的执行结果为(****# )。
#include <stdio.h>void main( ){ int i,j=4;for(i=j; i<=2*j; i++)switch(i/j){ case 0:case 1: printf(“*”); break;case 2: printf(“#”);}}5、下列程序的执行结果为( 0 0 04 0 07 8 0 )#include <stdio.h>void main( ){ int i,j,a[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=i;j<3;j++) a[i][j]=0;for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%d ",a[i][j]);printf("\n"); }}三、根据题意,补充语句(共5小题,每空2分,共30分)1、输入一个字符,若是小写字符则转换为大写字符,并输出这两个字符。
{ char a, b;scanf(“%c”, &a );if( a>=‟a‟ && a<=‟z‟) b=a-32;printf(“%c %c”, a, b);}2、输入一个百分制成绩,输出对应的字母等级(A、B、C、D、F)。
#include <stdio.h>void main( ){ int a, b;scanf(“%d”,&a);if( a>=90 && a<=100 ) b=9; else b=a/10;switch( b ){ case 9: printf(“A”); break;case 8: printf(“B”); break;case 7: printf(“C”); break;case 6: printf(“D”); break;default: printf(“F”);}}3、一个4位整数abcd分为前后两个两位整数ab和cd,若该数等于(ab+cd)*(ab+cd),则称该数为分段和平方数。
如:2025=(20+25)*(20+25)。
求出所有4位分段和平方数并输出。
#include <stdio.h>void main( ){ int n1, n2, n;for(n=1000; n<=9999; n++ ){ n1=n/100;n2= n%100 ;if( (n1+n2)*(n1+n2)= =n ) printf(“%d ”,n);}4、随机输入10个整数给数组,找出其中最大数,并输出该数和对应的下标。
#include <stdio.h>void main( ){ int a[10], i, max, j;for(i=0;i<10;i++)scanf(“%d”, &a[i] );max=a[0];j=0;for(i=1;i<10;i++)if( a[i]>max ){ max=a[i];j=i;printf(“%d %c”,max, j);}5、从键盘上输入20个整数给一个数组,找出其中最大的数并与第一个元素互换。
#include "stdio.h"void main(){ int a[10],i,m,max,t;printf("input 10 numbers:\n");for (i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for (i=1;i<10;i++)if ( a[i]>max ) { max=a[i]; m=i; }if( m!=0 ) { t=a[0];a[0]=a[m];a[m]=t; }for (i=0;i<10;i++)printf ("%5d",a[i]);}四、编程(共25分,第1小题7分,后2小题各9分)1、从键盘输入三个浮点数并从小到大排序输出,输出要求2位小数。
#include <stdio.h>void main ( ){ float a, b, c,t;scanf(“%f,%f,%f”, &a, &b,&c);if (a>b){t=a; a=b; b=t;}if (a>c){t=a; a=c; c=t;}if (b>c){t=b; b=c; c=t;}printf("%.2f, %.2f, %.2f", a, b, c);}2、定义一个具有80个元素的字符数组存储从键盘上键入一个字符串,分别统计其中数字字符、字母和其他字符的个数并输出。
#include <stdio.h>void main ( ){ char str[80];int i, dn=0,cn=0,other=0;gets(str);for(i=0;str[i]!=‟\0‟;i++)if(str[i]>=‟0‟&&str[i]<=‟9‟) dn++;else if((str[i]>=‟A‟&&str[i]<=‟Z‟) || (str[i]>=‟ a‟&&str[i]<=‟z‟) ) cn++;printf("digit=%d character=%d other=%d\n", dn,cn,other);}3、定义一个3x3的二维整型数组,从键盘上输入数据为每个数组元素赋值,然后依次求出每一行的和并输出。
#include <stdio.h>void main ( ){ int a[3][3], s;int i, j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf(“ %d”, &a[i][j]);for(i=0;i<3;i++){ s=0;for(j=0;j<3;j++)s=s+a[i][j]);printf("%d\n", s);}}。