C程序设计练习题
《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
(完整)C语言程序设计考试题

一、单项选择题(每小题2分,共50分)1、一个C程序的执行是从___A__.A、本程序的main函数开始,到main函数结束B、本程序的main函数开始,到本程序文件的最后一个函数结束C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束2、C语言程序的基本单位是___C___。
A、程序行B、语句C、函数D、字符3、请选出可用作C语言用户标识符的一组标识符___B___。
A、voidB、a3_b3C、ForD、2adefine _123 —abc DOWORD IF ase sizeof4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是__C__ 。
A、4。
500000B、4C、4.000000D、2.0000005、下列可以正确表示字符型常量的是___D__。
A、297B、”a"C、”\n”D、'\t'6、在C语言中,要求运算数必须是整型的运算符是__D__。
A、/B、++C、*=D、%7、C语言中,复合语句的构成是将一系列语句置于__C__。
A、begin与end之间B、方框号“[ ]”之间C、花括号“{}"之间D、圆括号“()”之间8、有如下程序段,对应正确的数据输入是___A___。
float x,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”, x,y);A、2.04<回车>B、2.04,5。
67<回车>5.67〈回车>C、A=2。
04,B=5.67<回车〉D、2。
045。
67〈回车>9、以下程序段的输出结果是___D__。
int a=5678;printf(”%2d\n”, a);A、提示出错、无结果B、56C、78D、567810、已知:char ch=’A';则下列表达式的值是__B__。
C语言程序设计期末考试试题及答案

C语言程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,正确的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数必须有参数答案:C3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列关于数组的描述中,错误的是?A. 数组可以是多维的B. 数组的下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D5. C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. void答案:C6. 在C语言中,以下哪个关键字用于定义一个静态变量?A. staticB. externC. registerD. auto答案:A7. 下列关于C语言中文件操作的描述中,正确的是?A. 文件操作只能使用标准库函数B. 文件指针必须使用FILE类型C. 文件操作必须使用fclose函数关闭文件D. 文件操作不能使用缓冲区答案:B8. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. typedefC. enumD. struct答案:A9. 下列关于C语言中位运算的描述中,错误的是?A. & 表示按位与B. | 表示按位或C. ^ 表示按位异或D. ~ 表示按位取反答案:B10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的内存空间通常是______个字节。
答案:42. C语言中,使用______关键字可以定义一个无限循环。
答案:while3. C语言中,数组的元素默认初始化为______。
程序设计基础(C语言)习题以及答案

其身正,不令而行;其身不正,虽令不从。
——《论语》一、选择题1.下列属于C语言中合法的标识符的是( B )A 、ex-1B 、-cookC 、951aD 、if2.若 x 为 float 型变量,则以下语句(A )。
x=213.82631;printf("%-4.2f\n",x);A、输出为213.83B、输出格式描述符的域宽不够,不能输出C、输出为213.82D、输出为-213.823.一个C程序的执行是从(C )A、main函数开始,直到最后一个函数结束B、第一个函数开始,直到最后一个函数结束C、main函数开始,直到main函数结束D、第一条语句开始,直到最后一条语句结4.构成C语言源程序的基本单位是(B )A、过程B、函数C、子程序D、命令5.以下叙述不正确的是(D )A、注释说明被计算机编译系统忽略B、注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用C、注释符“/”和“*”之间不能有空格D、在C程序中,注释说明只能位于一条语句的后面6.在C程序中,main函数的位置( A)A、可以任意B、必须作为最后一个函数C、必须作为第一个函数D、必须放在它所调用的函数之后7. C语言属于(C )A、机器语言B、汇编语言C、高级语言D、低级语言云路鹏程九万里,雪窗萤火二十年。
——《王实甫》人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。
——《顾炎武》8.使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是(D )。
A、a=25 b=25(空格分开)B、25 25(空格分开)C、25,25D、a=25,b=259. 下列叙述中,不正确的是( C)A、分号是C语句的必要组成部分B、C语句的注释可以写在语句的后面C、主函数的名字不一定用main表示D、函数是C程序的基本单位10.C程序是由( B)构成的A、若干过程B、一个或多个函数C、若干子程序D、一个主程序与若干子程序11. 以下程序的输出结果是(B )。
C语言程序设计试题及参考答案

精品文档C语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(D)A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D在C程序中,注释说明只能位于一条语句的后面2、下列四个选项中,是不合法的用户标识符的选项是(B)A、abcB、12ACC sunD A3、设有语句inta=4 ;则执行了语句a+=a-=a*a后,变量a的值是(A)A -24B、OC 4D 164、下列运算符中优先级最高的是(B)A、<B +C &&D ==5、在C语言中,运算对象必须是整型数的运算符是(A)A、%B、/C、%和/ D +&以下关于运算符的优先顺序的描述正确的是(C)A、关系运算符<算术运算符<赋值运算符<逻辑与运算符B逻辑与运算符<关系运算符<算术运算符<赋值运算符C、赋值运算符V逻辑与运算符<关系运算符<算术运算符D算术运算符<关系运算符<赋值运算符<逻辑与运算符7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C)sum=pad=5 pAd=sum++ pAd++, ++pAc;printf(“%d\n ”,pad);A 7B 6C、5D 48、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)A INPUTx、y、z; B、scanf(“ %d%d%d &x,&y,&z);C scanf(“%d%d%d, x,y,z);D read(“ %d%d%d, &x,&y,&z);9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmai n(){intm ,n;scanf(“ %2d%3”,&m &n);printf(“ m=%dn=%d\n,m, n);}A m=23n=45B m=234n=56C m=23n=456D 语句有错误10、若运行时,给变量x输入12,则以下程序的运行结果是(A)mai n(){intx ,y;scanf(“ %d ,&x);y=x>12? x+10: x-12 ;1欢迎下载printf(“ %d\n”,y);}精心整理A OB 22C 12D 1011、C语言中while和do-while循环的主要区别(A)A do-while的循环体至少执行一次B while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D do-while的循环体不能是复合语句12、以下对二维数组的正确说明的语句是(C)A、inta[3][]B 、floata(3,4)C 、doublea[3][4]D 、floata(3)(4)13、以下程序的输出结果是(C)mai n(){inti ,x[3][3]={1 ,2, 3, 4, 5, 6, 7, 8, 9};for(i=0 ;i<3 ;i++)printf( “ %d , x[i][2-i]) ;}A 1, 5, 9B 1, 4, 7C 3, 5, 7D 3, 6, 914、以下能对一维数组a进行正确初始化的语句是(C)A inta[10]=(0 , 0, 0, 0, 0) ;B inta[10]={};C inta[10]={0} ;D inta[10]={10*1};15、以下程序执行后的输出结果是:(A)intfun (i nta , intb , intc){a=456 ;b=567; c=678;}voidmai n(){intx=10 , y=20, z=30;z=fun(x , y, z);printf( “ %d %d %d\n”,z , y , x);}A 30, 20 , 10B 10 , 20 , 30C 10 , 30 , 50D 10 , 30 , 4016、以下说法正确的是(A)如果在一个函数中的复合语句中定义了一个变量,则该变量A只在该复合语句中有效B在该函数中有效C在本程序范围内有效D为非法变量17、以下函数调用语句中含有的实参个数为(B)func((exp1 , exp2 , exp3), (exp4 , exp5));A 1B 2C 4D 518、在C语言程序中,以下说法正确的是(B)。
C语言程序设计练习题

C语言程序设计练习题一、选择题1.以下八进制数写法正确的是()A.0378 B.427 C.0417 D.04192.若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d ”,&a,&b,&c);给a赋值1,给b赋值2, 给c赋值3, 以下输入形式中错误的是(✞代表一个空格符)()A.✞✞✞1,2,3<回车> B.1✞2✞3<回车>C.1,✞✞✞2, ✞✞✞3<回车> D.1,2,3<回车>3.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);4.若w,x,z均为int型变量,则执行以下语句后的输出为。
w=3;z=7;x=10;printf("%d\n",x>10?x+100:x-10);printf("%d\n",w++||z++);printf("%d\n",!w>z);printf("%d\n",w&&z);A. 0B. 1C. 0D. 01 1 1 11 1 0 01 1 1 05.分析以下程序, 下列说法正确的是。
main(){int x=5,a=0,b=0;if(x=a+b)printf("* * * *\n");elseprintf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #6.程序段如下:则以下说法中正确的是:()。
c语言程序设计试题及答案

c语言程序设计试题及答案C语言程序设计试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-2答案:C2. 以下哪个语句不是C语言中的输入语句?A. scanf("%d", &x);B. printf("%d", x);C. gets("string");D. getchar();答案:B3. C语言中,以下哪个不是标准库函数?A. printf()B. malloc()C. strcpy()D. main()答案:D4. 以下哪个选项是C语言中正确的数组声明?A. int array[];B. int [10] array;C. int array[10];D. int [10] = array;答案:C5. 以下哪个是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello World"答案:C6. C语言中,以下哪个是正确的函数声明?A. int function();B. void myFunction(int x, int y);C. int myFunction(int x, int y) {}D. int myFunction(int x, int y) { return x + y; }答案:B7. 在C语言中,以下哪个是正确的条件语句?A. if (x = 5)B. if (x == 5)C. if (x = 5) { x++; }D. if (x == 5) { x++; }答案:D8. 在C语言中,以下哪个是正确的循环语句?A. for (int i = 0; i <= 10; i++) {}B. for (int i = 0; i < 10; i--) {}C. while (x != 0) { x--; }D. do { x++; } while (x != 0);答案:D9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. *int ptr;C. int ptr*;D. int * ptr;答案:A10. C语言中,以下哪个不是运算符?A. +B. -C. :D. *答案:C二、简答题(每题5分,共30分)1. 请简述C语言中数组和指针的区别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.从键盘上输入两个复数的实部与虚部,求出并输出它们的和、积、商。
2.以下程序的功能如(图1)。
|x+1| x<0
f= 2x+1 0≤x≤5
sinx+5 x>5
3.输入三个整数x,y,z,请把这三个数由小到大输出。
4.统计读入的整数数据中大于零的整数个数和小于零的整数个数。
用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。
5.以每行5个数输出500以内能被7或17整除的偶数,并求出其和。
6.以下程序不借助任何中间变量把a、b的值进行交换。
7.输出斐波那契(Fibonacci)数列(1,1,2,3,5,8,13……)的前20项。
8.求 1-3+5-7+……-99+101 的值。
9.输出如下形式的乘法表。
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
……
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
10.实现求解下面的式子的结果,请填空将程序补充完整。
s=1*2+2*3+3*4+…+20*21。
11.以下程序的功能是分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。
12.求任一整数x的各位数字之和。
13.以下程序的功能是求两个非负整数的最大公约数和最小公倍数。
14.以下程序的功能如(图1)。
15.算式:?2*7?=3848中缺少一个十位数和一个个位数。
编程求出使该算式成立时的这两个数,并输出正确的算式。
16.输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。
17.下面的程序是求1!+3!+5!+……+n!的和.
18.请编程序打印如下图形。
$
$$
$$$
$$$$
$$$$$
19.打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
20.从键盘上输入20个元素的值存入一维数组m中,然后将下标为(0. 2. 4. 6. 8. 10……
18)的元素值赋值给数组n,最后输出数组n的内容。
请填空
21.产生25个[50,90]上的随机整数,求出其中能被5整除的所有数的和。
22.从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
23.以下程序的功能是将一个数组中的元素按逆序存放。
24.产生15个[20,80]上的随机整数,用顺序法(比较法)按从小到大排序后输出。
25.以下程序是用选择法对10个整数按升序排列
26.以下程序的功能是产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。
27.以下程序的功能是产生并输出如下形式的方阵。
1 2 2 2 2 2 1
3 1 2 2 2 1 4
3 3 1 2 1
4 4
3 3 3 1
4 4 4
3 3 1 5 1
4 4
3 1 5 5 5 1 4
1 5 5 5 5 5 1
28.以下程序的功能是产生并输出杨辉三角的前七行。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
39.求出二维数组中的最大元素值。
30.用5*9的二维数组打印以下图形。
*****
*****
*****
*****
*****
31.以下程序的功能是求一个二维数组中每行的最大值和每行的和。
32.按字母表顺序输出26个大写英文字母。
33.以下程序的功能如(图1)。
34.以下程序的功能如(图1)。
35.计算并输出500以内最大的10个能被13或17整除的自然数之和。
36.下面函数为二分法查找key值。
数组中元素已递增排序,若找到key则返回对应的下标,否则返回-1。
37.函数的功能是求有5个元素的一维数组的平均值。
38.已定义一个含有30个元素的数组s,函数fun1的功能是按顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序每五个元素求一个平均值, 并将该值存放在数组w中。
39.用冒泡法对数组a 进行由小到大的排序。
40.统计一个字符串中的字母、数字、空格、和其它字符的个数。
41删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。
42.将一个字符串中的前N个字符复制到一个字符数组中去,不许使用strcpy函数。
43.删除一个字符串中的所有数字字符。
44.输入字符串,再输入一个字符,将字符串中与输入字符相同的字符删除。
45.将两个字符串连接为一个字符串,不许使用库函数strcat。
46.将在字符串s中的字符先按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
47.将十进制数转换成十六进制数。
48.下面程序的功能是将十进制数转换成二进制数。
49.利用指针将通过键盘输入的3个数按从小到大的顺序输出。
50.通过键盘输入一个整数x,输出能整除x且不是偶数的各整数。
51.在一个一维整型数组中找出其中最大的数及其下标。
52.以下程序的功能:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。
例如:当s串为"ABCD"时,则t串的内容应为"ABCDDCBA"。
53.请编写一个函数fun,它的功能是:删除字符串中的数字字符。
例如输入字符串:48CTYP9E6,则输出:CTYPE。
54.写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
55.将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。
56.通过函数的递归调用计算阶乘。
57.用递归法求字符串中ASCII码值最大的字符。