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语言程序设计》综合练习题一、单项选择题1.下列( D )是字符串比较函数。
A. puts()B.gets()C. strcpy ()D. strcmp()2.构成一个完整的C源程序必须有且只有一个( C )。
A. 函数B.过程C. 主函数D. 程序3. 设有int i,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为( A )。
A. 1B. 2C. 63D. 04.在C语言中,不同类型数据混合运算时,要先转化成同一类型后进行运算。
设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是(D)类型数据。
A.int B.char C.unsigned D.long 5.下列(D)不是构成标识符的字符。
A.字母B.数字C.下划线D.标点符号6.表达式:3>5&&-1||6<3-!-1的值是( A )。
A. 0B.1C. 表达是不合法D. 均不对7. 以下标识符中能做为合法的C用户标识符的是(D)。
A.A3+B3B. floatC. 3dxD. x3d8. 以下数据中不正确的数值或字符常量是(B)。
A. 0.0B. 3E2.7C. 9861D. 0xabcd9. fp=fopen(''test.txt",''r''); 语句中,r对文件处理方式是(A)。
A. 只读打开文件B. 只写打开文件C. 追加打开文件D. 读写打开文件10.表示关系x<=y<=z的C语言表达式为(A)A. (x<=y)&&(y<=z)B. (x<=y)and(y<=z)C. (x<=y)&(y<=z)D. (x<=y<=z)11.如果要把常量327存入变量a中,a不能定义的类型是(B)。
C语言程序设计综合练习题
《C语言程序设计》综合练习题一、单选题1. C语言中基本数据类型有。
CA)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)整型、实型、字符型、逻辑型2. 在C语言中,数字O29是一个。
AA)八进制数 B)十进制数 C)十六进制数 D)非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是。
AA)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4.下列关于C语言用户标识符的叙述中正确的是。
BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。
5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。
DA) 顺序结构B) 选择结构C) 循环结构 D) 数组结构6. C语言提供的合法关键字是。
DA) swicth B) cha C) Case D) default7.以下非法的赋值语句是CA) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;【解析】对表达式不能进行自加自减运算。
8.在以下一组运算符中,优先级最高的运算符是。
A) <= B) = C) % D) &&【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。
由于C选项为求余运算符,所以本题正确答案为C选项。
(完整版)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语言程序设计》综合练习试卷(一)试题一判断题 (每题1分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。
2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。
3.字符数组中字符串可以整体输入输出。
4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。
5.C语言中数组名是指针常量。
6.结构体类型中的各成员项数据类型可以不相同。
7.函数必须有返回值,否则不能使用函数。
8.C程序执行总是从第一个函数开始。
9.可以用关系运算符对字符串进行大小比较。
10.For循环只能用于循环次数已确定的场合。
试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。
1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。
int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6 B)*(p+6) C)*p+=5 D)p+510. 已知:int *p,m=5, n; 正确的程序段是A) p=&n; scanf(" %d",&p); B) p=&n; scanf(" %d", *p);C) scanf("%d",&n); *p=n; D) p=&n; *p=m;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。
c语言程序设计试题及答案解析
c语言程序设计试题及答案解析C语言程序设计试题及答案解析一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C2. C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2. 若有以下C语言代码段:```cint a = 5, b = 10;printf("%d", a + b);```执行后输出的结果是______。
答案:15三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的多个元素。
数组的定义方式为:类型名数组名[数组大小];初始化方式可以是静态初始化,即在定义时直接赋值,如:int arr[5] = {1, 2, 3, 4, 5}; 或者动态初始化,即在定义后使用循环或赋值语句逐一赋值。
四、编程题1. 编写一个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;}```五、分析题1. 请分析以下C语言代码段的运行结果,并解释原因。
```c#include <stdio.h>int main() {int x = 10;printf("%d", x++);return 0;}```答案:代码段的运行结果是10。
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语言程序设计》期末综合练习题模拟试题一一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A. mainB. MAINC. nameD. function2.每个C语言程序文件的编译错误分为(B)类。
A. 1B. 2C. 3D. 43.字符串"a+b=12\n"的长度为(B)。
A. 6B. 7C. 8D. 94.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。
A. forB. whileC. doD. if5.在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。
int i=0; do i++; while(i<10);A. 8B. 9C. 10D. 116.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。
A. strlen( )B. strcpy( )C. strcat( )D. strcmp( )7.若用数组名作为函数调用的实参,传递给形参的是(A)。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(C)个字节。
9.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p 指向s所指向的字符串,则p应定义为(A)。
A. char *p=sB. char *p=&sC. char *p;p=*sD. char *p; p=&s10.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。
A. gets( )B. fgets( )C. getc( )D. fgetc( )二、填空题1.执行“printf("%c",'A'+2);”语句后得到的输出结果为(C)。
c程序设计考试题目及答案
c程序设计考试题目及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. voidD. return答案:C2. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A3. 若有定义`int a = 5;`,则执行`a += 3;`后,变量a的值是多少?A. 3B. 5C. 8D. 无法确定答案:C4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. $variableD. variable!答案:B5. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World'D. 'Hello, World'答案:A6. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][];B. int array[][3];C. int array[3][3];D. int array[][];答案:C7. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if x > yC. if (x > y) elseD. if (x > y) else if答案:A8. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for i = 0; i < 10; i++C. for (int i = 0; i < 10;)D. for (i = 0; i < 10; i++)答案:A9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int, int);B. int add(int a, int b)C. int add(int, int) {}D. int add(a, b)答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr[10];D. int ptr(int);答案:A二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于__输出__。
C语言程序设计试题_练习题
C语言程序设计试题_练习题一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是()。
A.ABCB.abcC.a_bcD.ab.c2.C程序是由构成的。
A.主程序与子程序B.主函数与若干子函数C.一个主函数与一个其它函数D.主函数与子函数3.以下说法中正确的是:A.在C语言中,实参与其对应的形参各占独立的存储单元;B.在C语言中,实参与其对应的形参共占同一个存储单元;C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D.在C语言中,形参是虚拟的,不占存储单元。
4.设n=3;则n++的结果是()。
A.2B.3C.4D.55.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。
A.0B.1C.2D.36.凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。
A.自动(auto)B.静态(tatic)C.外部(e某tern)D.寄存器(regiter)7.在while(某)语句中的某与下面条件表达式等价的是:A.某==0B.某==1C.某!=1D.某!=08.若有以下说明和语句:tructworker{intno;~char某name;}work,某p=&work;则以下引用方法不正确的是()。
A.work.noB.(某p).noC.p->noD.work->no9.以下对二维数组进行正确初始化的是()。
A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.int a[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};10.二维数组a有m列,则在a[i][j]之前的元素个数为:A)j某m+iB)i某m+jC)i某m+j-1二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)1.#include<tdio.h>main(){inti=16,j,某=6;j=i+++1;某某=i=j;printf(“%d,%d\n”,j,某);}运行结果是:2.#include<tdio.h>#include<math.h>main(){inta=1,b=4,c=2;float某=10.5,y=4.0,z;z=(a+b)/c+qrt((double)y)某1.2/c+某;printf(“%f\n”,z);}运行结果是:3.#include<tdio.h>main(){inta,b,c,d;a=c=0;b=1;d=20;if(a)d=d-10;eleif(!b)if(!c)d=25;eled=15;printf(“d=%d\n”,d);}运行结果:4.main(){inti=10;witch(i){cae9:i+=1;cae10:i+=1;cae11:i+=1;}printf(“%d”,i);}运行结果:5.#include<tdio.h>main(){inta[]={1,2,3,4},i,j,=0;j=1;for(i=3;i>=0;i--){=+a[i]某j;j=j某10;}printf("=%d\n",);}运行结果:6.func(int某){某=20;}main(){int某=10;func(某);printf(“%d”,某);}运行结果:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
C语言程序设计综合练习题
C语言程序设计综合练习题1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、12、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、15、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char、B、17、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、18、C语言中函数返回值的类型是由( )决定。
A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。
A、该数组的长度。
B、该数组的元素个数。
C、该数组中各元素的值。
D、该数组的首地址。
、D、110、C语言中数组下标的下限是________。
A、1 B、0 C、视具体情况 D、无固定下限、B、111、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、112、C语言中文件的存取方式是________。
《C语言程序设计》练习题
《C语⾔程序设计》练习题⼀、选择题(在A、B、C、D中选择⼀个正确的)1、以下叙述不正确的是()。
A、⼀个C源程序可由⼀个或多个函数组成B、⼀个C源程序必须包含⼀个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于⼀条语句的后⾯2、C语⾔规定:在⼀个源程序中,main函数的位置()。
A、必须在最开始B、必须在系统调⽤的库函数的后⾯C、可以任意D、必须在最后3、⼀个C程序的执⾏是从()。
A、本程序的main函数开始,到本程序main函数结束B、本程序⽂件的第⼀个函数开始,到本程序⽂件的最后⼀个函数结束C、本程序的main函数开始,到本程序⽂件的最后⼀个函数结束D、本程序⽂件的第⼀个函数开始,到本程序main函数结束4、C语⾔中的标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符()。
A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母、数字和下划线中任⼀种字符5、在计算机内部⽤来传送、存储、加⼯处理的数据或指令都是以()形式表⽰的。
A、⼗进制B、⼋进制C、⼆进制D、⼗六进制6、⼗进制数127转换为⼆进制数是()。
A、1111110B、1111111C、1000000D、100000017、⼗六进制数10H转换为⼋进制是()。
A、10B、2C、20D、168、1KB表⽰()。
A、1024位B、1000位C、1024字节D、1000字节9、以下不正确的标识符是()。
适⽤专业考试⽅式(闭卷) 考试时间为分钟A、scoreB、_abcC、x+yD、Hello10、⼗进制数107转换成⼆进制数是()。
A. 01101011B. 10001101C.0110 1101D. 1110 110111、⼆进制数1011011转换为⼗进制数是()。
A、91B、87C、107D、12312、若x、i、j和k都是int型变量,则计算下⾯的表达式后,x的值为()。
x=(i=4,j=16,k=32)A、4B、16C、32D、5213、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
c语言程序设计练习题
c语言程序设计练习题顺序程序设计1.输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,(float)a/b,a%b的结果,要求连同算式一起输出,每个算式占一行。
例:a等于10,b等于5,a+b的结果输成10+5=152.输入一个非负数,计算以这个数为半径的圆周长和面积。
3.输入任意一个三位数,将其各位数字反序输出(例如输入123,输出321).4.输入任意大小的三个整数,判断其中是否有两个奇数一个偶数。
若是,则输出“YES”,不是则输出“NOT” (要求用条件表达式进行判断,不使用if语句)5.求前驱字符和后继字符。
输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这三个字符及其对应的ASCII码值。
6.试用彩色文本定位输出。
(实例4,5)7.输入三角形的边长,求三角形面积。
(面积=sqrt(s(s-a)(s-b)(s-c)), s=(a+b+c)/2)分支和循环程序设计1.输入两个字符,若这两个字符之差为偶数,则输出它们的后继字符,否则输出它们的前趋字符。
这里的前趋和后继是指输入的两个字符中,较小字符前面的和较大字符后面的那个字符。
2.输入整数a和b,如果a 能被b整除,就输出算式和商,否则输出算式、整数商和余数。
3.输入某个点A的平面坐标(x,y),判断(输出)A点是在圆内、圆外还是在圆周上,其中圆心从标为(2,2),半径为1 。
4.输入年号和月份,输出这一年的该月的天数。
(一个年份,先判断是否闰年)5.输出9*9乘法表。
6.求爱因斯坦数学题。
有一条长阶,若每步跨2阶,则最后剩余1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;若每步跨7步,最后正好一阶不剩。
7.输入一串字符,直到输入一个星号(*)为止,统计(输出)其中的字母个数和数字字符个数。
8.计算斐波那契分数序列前n项之和(n是某个常数).( 2/1,3/2,5/3,8/5,13/8,21/13,...... 前一项的分子作为后一项的分母。
C语言程序设计综合考试试题与答案
C语言程序设计综合考试试题与答案1、以下叙述中正确的是()A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上(正确答案)D)用C语言编写的程序只能放在一个程序文件中2、以下叙述中正确的是()A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束(正确答案)D)C语句必须在一行内写完3、计算机能直接执行的程序是()A)源程序B)目标程序C)汇编程序D)可执行程序(正确答案)4、以下C语言用户标识符中,不合法的是()A)_1B)AaBcC)a_bD)a-b(正确答案)5、以下选项中不合法的标识符是()A)printB)FORC)&a(正确答案)D)_006、以下选项中合法的标识符是()A)1_1B)1-1C)_11(正确答案)D)1_ _7、以下选项中,能用作数据常量的是()A)o115B)0118C)1.5e1.5D)115L(正确答案)8、以下选项中不能作为C语言合法常量的是()A)'cd'(正确答案)B)0.1e+6C)"\a"D)'\011'9、C源程序中不能表示的数制是()A)二进制(正确答案)B)八进制C)十进制D)十六进制10、以下选项中正确的定义语句是()A)double a;b;B)double a=b=7;C)double a=7,b=7;(正确答案)D)double,a,b;11、以下不能正确表示代数式2ab/cd的C语言表达式是(D)A)2ab/c/d(正确答案)B)ab/c/d2C)a/c/db2D)2ab/cd12、义:int x=2;,以下表达式中,值不为6的是()A)x=x+1B)x++,2xC)x=(1+x)D)2x,x+=2(正确答案)12、有以下程序,其中k的初值为八进制数main(){int k=011;cout<<k++<<endl;}程序运行后的输出结果是(D)A)12(正确答案)B)11C)10D)913、若有表达式(w)?(--x):(++y),则其中与w等价的表达式是(D)_________________________________A)w==1 B)w==0 C)w!=1 D)w!=0_________________________________14、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是()A)a=a++,i++;B)i=(a+k)<=(i+k)C)i=a%11;(正确答案)D)i=!a;15、若函数中有定义语句:int k;,则()A)系统将自动给k赋初值0B)这时k中的值无定义(正确答案)C)系统将自动给k赋初值-1D)这时k中无任何值16、例2.3.2 写出下列程序的运行结果#include(正确答案)void main(){int c , x , y ;x = 0 ; y = 0 ; c = 0 ;c = x++ && y++ ;cout}答案:1 0 0A B C D17、例2.3.3 写出下列程序的运行结果#include(正确答案)void main(){int c , x , y ;x = 1 ; y = 1 ; c = 0 ;c = x++ || y++ ;cout}答案:2 1 1A B C D18、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()A)1(正确答案)B)0C)2D)不知道a的值,不能确定19、课堂练习:两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。
(完整版)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语言程序设计练习题含程序及参考答案
完整版C语言程序设计练习题含程序及参考答案1. 请编写一个C程序,要求输入一个整数n,并打印从1到n的所有整数。
```c#include <stdio.h>int main(){int n;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++){printf("%d ", i);}return 0;}```参考答案:```请输入一个整数n:51 2 3 4 5```2. 请编写一个C程序,要求输入两个整数m和n,并计算它们的和、差、积和商(m除以n的结果)。
```c#include <stdio.h>int main(){int m, n;printf("请输入两个整数m和n:");scanf("%d %d", &m, &n);int sum = m + n;int difference = m - n;int product = m * n;float quotient = (float)m / n;printf("和:%d\n", sum);printf("差:%d\n", difference);printf("积:%d\n", product);printf("商:%.2f\n", quotient);return 0;}```参考答案:```请输入两个整数m和n:10 3和:13差:7积:30商:3.33```3. 请编写一个C程序,要求输入一个整数n,并判断它是否为素数。
```c#include <stdio.h>#include <stdbool.h>bool isPrime(int n){if (n <= 1){return false;}for (int i = 2; i * i <= n; i++){if (n % i == 0){return false;}}return true;}int main(){int n;printf("请输入一个整数n:"); scanf("%d", &n);if (isPrime(n)){printf("%d是素数。
1253《C语言程序设计》电大期末试题及其答案
《C语言程序设计》期末综合练习题模拟试题一一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A. mainB. MAINC. nameD. function2.每个C语言程序文件的编译错误分为(B)类。
A. 1B. 2C. 3D. 43.字符串"a+b=12\n"的长度为(B)。
A. 6B. 7C. 8D. 94.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。
A. forB. whileC. doD. if5.在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。
int i=0; do i++; while(i<10);A. 8B. 9C. 10D. 116.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。
A. strlen( )B. strcpy( )C. strcat( )D. strcmp( )7.若用数组名作为函数调用的实参,传递给形参的是(A)。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(C)个字节。
9.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p 指向s所指向的字符串,则p应定义为(A)。
A. char *p=sB. char *p=&sC. char *p;p=*sD. char *p; p=&s10.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。
A. gets( )B. fgets( )C. getc( )D. fgetc( )二、填空题1.执行“printf("%c",'A'+2);”语句后得到的输出结果为(C)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计综合练习题一、选择题C(1)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点a.错误,c语言是由B语言发展过来,是低级语言向高级语言发展的过渡语言,而且更偏向底层~~java和C#才算是高级语言b、明显错误,C语言是编译型语言,需要编译执行d、这就错的更离谱了,现在微软都在研制F#,C怎么可能最晚?再说,java和c#都比它晚了,再说一下,C语言的主要优点是简洁紧凑、可移植性强,由指针这一特色,更能操作底层,它没有java的跨平台性,没有C#的通俗性。
最后,说下C,早期的C在贝尔实验室研制出来的,用于做数值计算和一些数学模型的求解,所以更接近自然语言和数学语言B(2)在一个C语言程序中A)main()函数必须出现在所有函数之前B)main()函数可以在任何地方出现C)main()函数必须出现在所有函数之后D)main()函数必须出现在固定位置B(3)下列关于C语言用户标识符的叙述中正确的是A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头A不能出现中划线C下划线可以放在开头D数字不能放开头D(4)下列关于单目运算符++,--的叙述中正确的是A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量A(5)有以下程序段:int m=0,n=0;char c=′a′;scanf(″%d%c%d″,&m,&c,&n);printf(″%d,%c,%d\n″,m,c,n);若从键盘上输入:10A10<回车>,则输出结果是A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0格式字符%d用于输入整数,%c用于输入字符。
在输入时,系统把第一个10作为整数10赋给m,把随后的A作为字符赋值给c,后面的10作为整数赋给n,最后输出的结果为10,A,10 printf语句中,屏幕输出时所显示的间隔符应与输出格式项之间的间隔符一致。
C(6)有以下程序:main(){ int i=1,j=1,k=2;if((j++ k++)&&i++) printf(″%d,%d,%d\n″,i,j,k);}执行后输出结果是A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3C语言中,执行“‖”运算的两个操作数,若有1个值为1,则整个表达式的值都为1。
若该运算符左边操作数的值为1,则就不继续执行其右边的操作数,故最终i,j,k的值为2,2,2。
D(7)有以下程序:main(){ int p[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7 && p[i]%2){k=k+p[i];i++;}printf(″%d\n″,k);}执行后输出结果是A)58 B)56 C)45 D)24程序的功能是计算数组中满足条件的数的累加和(遇到第一个偶数为止)。
B(8)有以下程序:main(){ int i=10,j=1;printf(″%d,%d\n″,i--,++j);}执行后输出结果是A)9,2 B)10,2 C)9,1 D)10,1自增运算符“++”和自减运算符“--”放在变量之后表示,在使用变量之后,再使变量的值加1或减1。
若放在变量之前则表示在使用变量之前,先使变量的值加1或减1。
C(9)有以下程序:int f1(int x,int y){ return x>y?x:y;}int f2(int x,int y){ return x>y?y:x;}main(){ int a=4,b=3,c=5,d,e,f;d=f1(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c);f=a+b+c-d-e;printf(″%d,%d,%d\n″,d,f,e);}执行后输出结果是A)3,4,5 B)5,3,4 C)5,4,3 D)3,5,4函数f1()的功能是返回两数中的较大值,函数f2()的功能是返回两数中的较小值,所以经过两次赋值后,d=5,e=3,f=a+b+c-d-e=4。
D(10)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是 A) int*i=NULL; B) float*f=NULL;scanf(″%d″,i); *f=10.5;C)chart=′m′, *c=&t; D) long*L;*c=&t;L=′\0′;选项C)显然不对。
选项A),B),D)从语法上讲都是可以的,但内存中地址为NULL,即地址0的单元不能随意存放用户数据,因为这样可能会破坏其他程序。
选项D)中尽管用了′\0′(在内存中也为0),但并未向该单元存放数据,故该项正确。
C(11)已定义c为字符型变量,则下列语句中正确的是A)c=′97′; B)c=″97″; C)c=97; D)c=″a″;字符常量是用单撇号括起来的一个字符或一串字符,故选项A)不正确。
选项B),D)均为字符串。
而选项C)是把ASCII码值为97的字符赋给了变量c。
B(12)以下选项中不能正确把cl定义成结构体变量的是A)typedef struct B)struct color cl{ int red; { int red;int green; int green;int blue; int blue;} COLOR; }COLORcl;C)struct color D)struct{ int red; { int red;int green; int green;int blue; int blue;} cl; } cl;选项A)是把结构体类型改名后定义为变量cl。
选项C),D)则是在定义结构体类型时定义变量,而选项B)不符合结构体类型定义的语法规则。
D(13)下列选项中正确的语句组是A)char s[8];s={″Beijing″};B)char *s;s={″Beijing″};C)char s[8];s=″Beijing″;D)char *s;s=″Beijing″;C语言不允许通过赋值语句给字符数组赋值,故选项A),C)不正确,而“{}”是在定义变量的同时对变量进行初始化时使用,在赋值时不能使用。
B(14)下列函数定义中,会出现编译错误的是A)max(intx,inty,int*z) B) int max(int x,y){ *z=x>y ? x:y; } { intz;z=x>y ? x:y;return z;}C)max(intx,inty) D)int max(intx,inty){ intz; { return(x>y?x:y);}z=x>y?x:y;return(z);}定义函数时,若需要声明形式参数时,则每个形式参数都必须单独声明类型D(15)有以下程序:fun(inta,intb){ if(a>b)return(a);elsereturn(b);}main(){ int x=3, y=8, z=6, r;r=fun(fun(x, y),2*z);printf(″%d\n″,r);}程序运行后的输出结果是A)3 B)6 C)8 D)12此题考查了带返回值的函数的调用。
fun()函数的功能是求出两个数的最大数并返回主函数r=fun(fun(x, y),2*z)处。
执行过程为先调用函数fun(x,y)求得两数中的较大者,再进行自身的递归调用,此时函数中的两个参数为刚求得的数和2*z(即12)传递给子函数,找出两数中的大数。
二、填空题1.算术运算符与关系运算符优先次序______算术运算>关系运算2.a和b值分别为4和5,则!a||b的值为___1___, 4 && 0 || 2的值为______。
3.判别某一年Year是否闰年,用逻辑表达式表示______. (year%4==0&&year%100!=0)||year%400==04下面程序的运用结果是:。
3和5void swap(int *a,int *b){ int *t;t=a; a=b; b=t;}mian(){ int x=3, y=5, *p=&x, *q=&y;swap(p,q);printf(“%d%d/n”,*p,*q);}5.下面程序的运用结果是:。
typedef union student{ char name[10];long sno;char sexfloat score[4];}STU;mian(){ STU a[5];printf(“%d/n”,sizeof(a));}【答案】80【解析】sizeof(a) == sizeof(float score[4])*5=16*5=80union的大小为最大成员的大小6、执行以下程序后,输出“#”号的个数是。
#include<stdio.h>main(){ int i,j;for(i=1;i<5;i++)for(j=2;j<=i;j++) putchar(′#′);}【答案】6【解析】第一层循环条件成立时,i的值分别为1,2,3,4。
而第二层循环条件成立时i的值只能是2,3,4。
j<=i共执行6次。
7、以下程序运行后的输出结果是main(){ inti,n[]={0,0,0,0,0}for(i=l;i<=4;i++){ n[i]=n[i-1]*2+1;printf(″%d″,n[i]);}}【答案】1 3 7 15【解析】循环的作用是控制数组中后一个元素的值是前一个元素值的两倍加1。
8、以下程序运行后的输出结果是int a=5;fun(int b){ static int a=10;a+=b++;printf(″%d″,a);}main(){ intc=20;fun(c);a+=c++;printf(″%d\n″,a);}【答案】30 25【解析】当调用fun()时把c的值传给形参b,在执行子函数fun()中的a+=b++时,实际上静态变量a起作用,因此a的值变为30,然后回到主函数,执行a+=c++,此时起作用的是外部变量a,因此外部变量a的值由5变为25。