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

C语言练习题(一)一选择题1以下不正确的C语言标识符是( D )。
A.ABC B.abc C.a_bc D.ab.c2以下正确的c语言标识符是( )。
A.%x B.a+b C.a123 D.test!3一个c程序的执行是从( ).A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4 一个C语言程序是由()。
A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成5 C语言程序的基本单位是( )。
A.过程B.函数c子程序D.标识符6 编辑程序的功能是( )。
A.建立并修改程序B.将c源程序编译成目标程序C.调试程序D.命令计算机执行指定的操作7以下结果为整数的表达式(设有int i;char c;float f;)().A.i+f B.i*c C.c+f D.i+c+f8以下不正确的语句(设有int p,q)是( )。
A.P*=3; B.p/=q; C.p+=3; D.p&&=q;9 以下使i的运算结果为4的表达式是()。
A.int i=0,j=0;(i=3,(j++)+i);B.int i=1,j=0;j=i=((i=3)*2);C.int i=0,j=1;(j==1)?(i=1);(i=3);D.int i=1,j=1;i+=j+=2;10设n=10,i=4、则赋值运算n%=i+1执行后,n的值是().A.0 B.3 C.2 D.111逗号表达式(a=3*5,a*4),a+15的值为( ),a的值为( )。
①A.15 B.60 C.30 D.不确定②A.60 B.30 C.15 D.9012 如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为().A.1 B.2 C.3 D.413 若有代数式3ae/bc,则正确的C语言表达式是(C)A)a/b/c*e*3 B)3*a*e/b/cC)3*a*e/b*c D)a*e/c/b*314在C语言中,要求运算数必须是整形的运算符是(D).A)/ B)++ C)!= D)%15 若以下变量均是整形,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(A).A)7 B)8 C)9 D)1016在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)。
C语言程序设计_习题大全(含答案)

C语言程序设计_习题大全(含答案) C语言程序设计_习题大全(含答案)C语言程序设计是计算机科学与技术领域中非常重要的一门课程,对于学习和掌握程序设计的基本原理和方法具有重要意义。
在学习这门课程过程中,习题的练习和掌握是至关重要的一环。
本文将向大家介绍一份包含答案的C语言程序设计习题大全,帮助读者拓宽思路,加深对C语言程序设计的理解。
第一章:基础知识练习习题1:请编写一个C程序,输出"Hello, World!"。
答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```习题2:请编写一个C程序,将两个整数相加并输出结果。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```第二章:条件语句练习习题3:请编写一个C程序,判断某年份是否为闰年。
答案:```c#include <stdio.h>int main() {int year;printf("请输入年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d年是闰年\n", year);} else {printf("%d年不是闰年\n", year);}return 0;}```习题4:请编写一个C程序,判断用户输入的整数是否为正数、负数或者零。
《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语言程序设计》试题库及答案一、选择题1. 下列哪个选项是C语言的标准库函数?A. printfB. scanfC. mainD. All of the above答案:D2. C语言中,用于定义字符串的字符数组的语法是什么?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str = "Hello";D. char str[] = 'Hello';答案:A3. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. functionC. defD. void答案:A二、填空题1. 在C语言中,定义一个整型变量的正确方式是:________。
答案:int variable_name;2. C语言中,用于计算两个数的和的运算符是:______。
答案:+3. 如果要在C语言中声明一个指向整型的指针,应该使用:________。
答案:int *pointer_name;三、简答题1. 请简述C语言中数组和指针的区别。
答案:数组是一组相同类型的元素的集合,可以通过索引访问每个元素。
指针是一个变量,它存储了另一个变量的内存地址。
数组名可以被用作指向数组首元素的指针,但数组本身是一个固定大小的实体,而指针可以被重新赋值为其他地址。
2. 解释C语言中的结构体(struct)是什么?答案:结构体是一种用户定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。
它使得可以创建包含多种数据类型的复杂数据结构。
四、编程题1. 编写一个C语言程序,实现计算两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现将一个字符串反转,并输出结果。
国家开放大学电大考试《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语言程序设计综合练习题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语言综合练习(附答案)一、选择1.在C语言中运算对象必须是整型的运算符是A %B !C /D *2. 有以下程序#includemain(){int x;scanf(“%d”,&x);if(x<=3);else if(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果____________ 。
A)不等于10的整数 B)大于3且不等于10的整数C) 大于3或等于10的整数 D)小于3的整数3. 下列定义数组的语句中,正确的是__________。
A)int N=10;int x[N]; B)#define N 10int x[N];C) int x[0..10]; D) int x[];4. 以下程序运行后的输出结果是_______________。
#includemain(){int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,25. C语句x*=y+2;还可以写成A x=x*y+2;B x=2+y*x;C x=x*(y+2);D x=y+2*x;6. 以下程序运行后的输出结果是________________。
#includemain(){int a=1,b=0;if(!a) b++;else if(a==0) if(a) b+=2;else b+=3;printf(“%d\n”,b)}A)0 B)1 C)2 D)37. 若要定义一个具有5个元素的整形数组,以下错误的定义语句是__________。
A)int a[5]={0}; B)int b[] = {0,0,0,0,0};C) int c[2+3] ; D)int i=5,d[i];8. 设有float x;则x是____变量。
c语言程序设计题目及答案

间能同时被 3 和 5 整除的数的 个数。 #include <stdio.h> void wwjt();
int sum(int n) { if(n%3==0&&n%5==0) return(1); return(0);} 第 10 题 题号:16 功能:编写函数 fun 求 1!+2!+3!+ …… +n!的和,在 main 函
近似值例如:当误差为 0.0001 时,函数值为 0.618056。 #include <stdio.h> #include "math.h" void wwjt();
float fun() {
float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第 7 题 题号:394 功能:产生 20 个[30,120]上的随机 整数放入二维数组
功能:请编一个函数 void fun(int tt[M][N],int pp[N]),
tt 指向一个 M 行 N 列的二维数 组,求出二维数组每列
中最大元素,并依次放入 pp 所指一维数组中。二维
数组中的数已在主函数中赋予。
#include<conio.h> #include<stdio.h> #define M 3 #define N 4 void wwjt();
}
第 8 题 题号:337 功能:将两个两位数的正整数 a、b 合并形成一个整数放在
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是素数。
2021年国家开放大学电大C语言程序设计综合练习答案

2021年国家开放大学电大C语言程序设计综合练习答案综合练习1.C语言中的循环类语句有3条,它们是()。
正确答案是:for,while,do2.C语言中的跳转类语句有四条,它们是goto,return和()。
正确答案是:break,continue3.当不需要函数返回任何值时,则所使用的返回类型为()。
正确答案是:void4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
正确答案是:参数表5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为()。
正确答案是:#include6.在#include预处理命令中,不可以包含()。
正确答案是:目标文件7.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为()。
正确答案是:68.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为()。
正确答案是:29.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为()。
正确答案是:310.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为()。
正确答案是:float11.在scanf()函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为()。
正确答案是:double12.每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为()。
正确答案是:error13.在VC++环境下,为运行一个程序而建立的工作区文件的扩展名为()。
正确答案是:dsw1.在C语言中,作为标识符的第一个字符可以是英文字母、数字或下划线字符。
正确答案是:“错”。
2.在C语言中,标识符中的非首字符可以是英文字母、数字或下划线字符。
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)。
C语言程序设计 期末综合练习题

C语言程序设计期末综合练习题C语言程序设计是计算机科学与技术专业中一门重要的课程,它具有广泛的应用领域和深远的影响。
本文将为大家介绍一系列C语言程序设计的期末综合练习题,帮助大家加深对C语言的理解和应用能力。
1. 编写一个程序,计算两个整数的和并输出结果。
```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个程序,求一个整数数组的最大值和最小值,并输出结果。
```c#include <stdio.h>int main() {int arr[] = {12, 34, 56, 78, 90};int length = sizeof(arr) / sizeof(arr[0]);int max = arr[0];int min = arr[0];for (int i = 1; i < length; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}printf("最大值:%d\n", max);printf("最小值:%d\n", min);return 0;}```3. 编写一个程序,实现将字符串逆序输出。
```c#include <stdio.h>#include <string.h>int main() {char str[] = "Hello, World!";int length = strlen(str);for (int i = length - 1; i >= 0; i--) {printf("%c", str[i]);}return 0;}```4. 编写一个程序,判断一个整数是否为质数。
- 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,10printf语句中,屏幕输出时所显示的间隔符应与输出格式项之间的间隔符一致。
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。