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语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。
图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。
如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。
要事先准备好保存文件的目录,例d:\lx 目录。
在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。
设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。
图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。
图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。
在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。
内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。
C语言程序设计习题(含答案)

C语言程序设计习题(含答案) C语言程序设计习题(含答案)C语言是一种常用的编程语言,被广泛应用于计算机科学和软件开发领域。
为了帮助学习者更好地掌握C语言的编程技巧,本文提供一些常见的C语言程序设计习题及其答案。
通过完成这些习题,学习者可以锻炼编程思维,加深对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;}```习题二:计算圆的周长和面积题目描述:编写一个程序,根据用户输入的半径,计算圆的周长和面积,并输出结果。
解答:```C#include <stdio.h>#define PI 3.14159int main() {double radius, circumference, area;printf("请输入圆的半径:");scanf("%lf", &radius);circumference = 2 * PI * radius;area = PI * radius * radius;printf("圆的周长为:%lf\n", circumference);printf("圆的面积为:%lf\n", area);return 0;}```习题三:判断一个数是否为素数题目描述:编写一个程序,判断用户输入的一个正整数是否为素数。
解答:```C#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```习题四:计算两个矩阵的乘积题目描述:编写一个程序,计算两个3x3的矩阵的乘积并输出结果。
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语言中数组和指针的区别。
(完整版)C语言程序设计习题集及答案

C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。
A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。
A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。
A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。
A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。
A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。
A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。
int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。
A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。
A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。
y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。
A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。
printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。
C语言程序设计习题(含答案)

一、名词解释(每小题4分,共20分)1. 变量2. 赋值运算3. int4. 数组5. 函数二、单选题(每小题2分,共20分)1. 以下运算符中,表示取余数运算的是( )A. %B. /C. !=D. <=2. C语言中,表示“不等于”、“不相等”的运算符是( )A. ≠B. !=C. < >D. =/=3. C语言中,printf函数中的格式字符%d用来( )A. 输出一个字符串B. 输出单个字符C. 输出十进制整数D. 输出双精度浮点数4. C语言中,要求接受用户从键盘输入的一个英文字符到char型变量ch中,那么,该语句的正确写法是( )A. scanf("%z",ch);B. scanf("%c",ch);C. scanf("%z",&ch);D. scanf("%c",&ch);5. 定义一个用来存放双精度浮点数且名为x的变量的正确语句是( )A. double x;B. float x;C. Double x;D. Float x;6. 判断整数型变量score的取值是否在区间[60,100]的正确写法是( )A. if (score>=60 and score<=100)B. if (score>=60 && score<=100)C. if (score>=60 & score<=100)D. if (60<= score <=100)7. 定义最多能存放30个整数且名为scores的数组的正确语句是( )A. INT scores[30];B. int [30] scores;C. int scores[30];D. INT [30] scores;8. 利用string.h中库函数求字符串s的长度的表达式正确写法是( )A. len(s)B. length(s)C. strLen(s)D. strlen(s)9.利用string.h中库函数判断字符串s1大于等于字符串s2的正确写法是( )A. if(strcmp(s1,s2)>=0)B. if (s1>=s2)C. if(strcmp(s1,s2)≥0)D. if (s1≥s2)10. 以下能输出数字0,1,2,3,4,5,6,7,8,9且每行输出一个数字的正确语句是( )A. for( i=0; i<10; i++ ) { printf("%d",i); }B. for( i=0; i<10; i++ ) { printf("%d\n",i); }C. for( i=0; i<10; i++ ) { printf("%d\n",i+1); }D. for( i=0; i<10; i-- ) { printf("%d\n",i); }三、判断题(每小题2分,共10分)1. C语言中,int可以作为变量名,例如语句:char int;可以定义名为int 的字符型变量。
C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》练习及答案得分评卷人复查人一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。
1、结构化程序设计的三种基本控制结构是(D )。
A、主程序、子程序、函数B、输入、处理、输出C、调用,返回,转移D、顺序、选择、循环2、下列关于C程序变量的叙述, ( D )是错误的。
A、变量名必须由字母或下划线开头。
B、程序中的变量必须在被使用之前定义。
C、不同的基本类型的变量之间可以混合运算。
D、变量的数据类型决定变量的"作用域"。
3、能将C语言编写的源程序转换为目标程序的软件是(C )。
A、编辑程序B、汇编程序C、编译程序D、解释程序4、以下符号中,合法的用户标识符是( D )。
A、-pB、intC、3abD、_xt_5、以下选项中,与m=n++完全等价的表达式是( C )。
A、m=++nB、m+=n+1C、m=n, n=n+1D、n=n+1,m=n6、若有定义:int aa[8];。
则以下表达式中不能代表数组元aa[1]的地址的是(C )。
A、&aa[0]+1B、&aa[1]C、&aa[0]++D、aa+17、表达式!5&(7+3)&&(4+5)的值是(A)。
A、0B、1C、5D、98、以下选项中非法的C语言表达式是(A )。
A、x+1=x+1B、0<=x<100C、i=j==0D、(char)(65+3)9、在TURBO C中, int类型变量所占字节数是(B )。
A、1B、2C、4D、810、C语言中基本的数据类型包括(B)。
A、整型,实型,逻辑型B、整型,实型,字符型C、整型,字符型,逻辑型D、整型,实型,逻辑型,字符型11、设有变量定义如下:char ch; int i; float f;表达式ch / i + i﹡f + 1.234 的结果的数据类型是(D)。
A、floatB、charC、intD、double12、C语言中前后运算对象都必须是整型的运算符是(A)。
A、%B、/C、++D、!13、已定义c为字符型变量, 则下列语句中正确的是(A)。
A、c=98;B、c=’98’;C、c=”98”D、c=”b”14、以下实型常量中,符合C语言语法的是(A)。
A、.5E-3B、1.2E0.5C、E15D、3.14.159E15、以下4个选项中,不能看作一条语句的是(C )。
A、if (a>0);B、{ ; }C、if (b==0) m=1; n=2;D、a=0, b=0, c=0;16、要用C语言表示数学关系式a≥b≥c,正确的表达式是(D)。
A、a>=b>=cB、(a>=b)& (b>=c)C、(a>=b) || (b>=c)D、(a>=b)&& (b>=c)17、设i, j, k 均为整型变量, 则执行以下for 语句后, k 的值是(C )。
For (i=0, j=10; i<=j; i++, j--) k=i+j;A、0B、5C、10D、2018、若表达式!x的值为1, 则下列表达式( A )的值为1。
A、x = = 0B、x = = 1C、x != 1D、x != 019、已知整型变量a=13, b=16, 则a & b的值为(A )。
A、0B、-3C、1D、320、在一个表达式中含下列运算符,优先级最高的是(B)。
A、赋值运算符B、算术运算符C、条件运算符D、关系运算符21、下列语句组中,正确的是(C)。
A、char *s; s={"Beijing"};B、char s[8]; s={"Beijing"};C、char *s; s="Beijing";D、char s[8]; s="Beijing";22、下述对C语言字符数组的描述中错误的是(C)。
A、字符数组可以存放字符串B、字符数组中的字符串可以整体输入、输出C、可在赋值语句中通过赋值运算符“=”对字符数组整体赋值D、不可用关系运算符对字符数组中的字符串进行比较23、凡在函数中未指定存储类别的变量,其隐含的存储类别为(A)。
A、autoB、externC、registerD、static24、在函数调用语句中的____的个数、类型和次序应与函数定义的____相一致。
(D)A、值,变量B、变量,值C、形参,实参D、实参,形参25、若有定义int (*p)[3]和int (*f)(),则p和f分别表示(D)。
A、指针数组,函数指针B、数组指针,指针函数C、指针数组,指针函数D、数组指针,函数指针26、在说明语句:int *f();中,标识符f代表的是(C)。
A、一个用于指向一维数组的指针变量B、一个用于指向整型数据的指针变量C、一个返回值为指针型的函数名D、一个用于指向函数的指针变量27、使用结构体struct的目的是(A)。
A、将一组相关的数据作为一个整体,以便程序使用B、将一组相同数据类型的数据作为一个整体,以便程序使用C、将一组数据作为一个整体,以便其中的成员共享同一存储空间D、将一组数值一一列写出来,变量的值只限于列举的数值的范围内28、设有说明语句typedef struct{ int n;char ch[8];}PER;则下面叙述中正确的是(A)。
A、PER是结构体类型名B、PER 是结构体变量名C、struct 是结构体类型名D、struct 是结构体变量名29、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(B)。
A、scanf(“%d”,a);B、scanf(“%d”,pa);C、scanf(“%d”,*pa);D、scanf(“%d”,&pa);30、若要打开D盘上user文件夹下名为abc.txt的文本文件进行读、写操作,符合此要求的函数调用是(C)A、fopen("D:\\user\\abc.txt","r")B、fopen("D:\user\abc.txt","w")C、fopen("D:\\user\\abc.txt","r+")D、fopen("D:\user\abc.txt","rb")31、下列语句中,能正确进行字符串赋值或赋初值的是(AD )。
A、char a[5]={‘h’,‘e’,‘l’,‘l’,‘o’};B、char s[5]=“hello”;C、char s[5]; s=“hell”;D、char *s; s=“hello”;32、下列语句中,能正确定义一维数组的是(B)。
A、 int N=10;int num[N]; B、# define N 10int num[N];C、int num[0..10];D、int num[];33、下列语句中,不能正确定义二维数组的是(A)。
A、int a[2][]={{1,2},{3,4}};B、int a[2][2]={{1}, 2,3};C、int a[][2]={1,2,3,4};D、int a[2][2]={{1},{2}};34、如有定义: int *p[3]; 则下列叙述中正确的是(C)。
A、定义了一个可指向一维数组的指针变量p, 所指一维数组应含有三个int类型元素B、定义了一个名为*p的整型数组, 该数组含有三个int类型元素C、定义了一个指针数组p, 该数组含有三个元素, 每个元素都是基类型为int的指针D、定义了一个基类型为int的指针变量p, 该变量具有三个指针35、有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(A)。
A、fun(x,n);B、void fun(n,x);C、fun(int y, double m);D、k=fun(10,12.5);36、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)。
A、函数调用可以出现在表达式中B、函数调用可以作为独立的语句存在C、函数调用可以作为一个函数的实参D、函数调用可以作为一个函数的形参37、若有下面的说明和定义struct test{ int ml; char m2; float m3;union uu {char ul[5]; int u2[2]; } ua;} myaa;则sizeof(struct test )的值是(B)。
A、9B、12C、14D、1638、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为(B)。
A、-1B、0C、1D、339、下列程序的输出结果为(C)。
#include <stdio.h>main(){ char a = ‘a’, b;printf(”%c,”, ++a);printf(”%c\n”, b=a++); }A、a, bB、a, cC、b, bD、b, c40、下列程序的输出结果为(A)。
#include <stdio.h>#define F(X,Y) X﹡Ymain( ){ int a=3, b=4;printf("%d\n", F(a++, b++)); }A、12B、16C、20D、2441、下列程序的输出结果为(D)。
#include<stdio.h>main( ){ int a[ ][3]=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;printf("%d", a[2][1]); }A、2B、4C、7D、842、设有说明语句: int a=1,b=0; 则执行以下语句后, 输出结果为(A)。
switch(a){ case 1: switch(b){ case 0: printf("**0**"); break;case 1: printf("**1**"); break; }default: printf("**2**"); break; }A、**0**B、**2**C、**0****1****2** D、**0****2**43、下列程序的输出结果为(B)。
main(){ char ch1,ch2;ch1=’A’+’5’-‘3’;ch2=’A’+’5’-‘3’;printf(“%d,%c\n”,ch1,ch2); }A、67,67B、67,CC、B, CD、C, C44、下列程序的输出结果为(D)。