常熟理工学院C语言题库最新版
- 格式:doc
- 大小:123.00 KB
- 文档页数:25
2022年常熟理工学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x的二进制数是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是_______。
2、结构化程序由________、________ 、________ 3种基本结构组成。
3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是4、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后x的值为_______。
5、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_______。
6、若有定义:int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[3],k;则下面程序段的输出是_______。
for(k=0;k<3;k++)q[k]=8.a[k*4];printf("%d\n",q[2][3]);7、执行下面程序段后,k的值是_______。
k=1;n=263;do{k*=n%10;n/=10;} while(n);8、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_______;b=a-_______;a-=_______;9、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
10、下面程序wdm的运行结果是_______。
int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0};for(i=0;i<10;i++)y[x[i]]++;printf("%d\n",y[3]);二、选择题11、若有代数式|x3+log10x|,则正确的C语言表达式是()A.fabs(x*3+log(x))B.abs(pow(x,3)+log(x))C.abs(pow(x,3.0)+log(x))D.yfabs(pow(x,3.0)+log(x))12、以下表达式值为3的是( )A.16-13%10B.2+3/2C.14/3-2D.(2+6)/(12-9)13、有定义语句int a,b;,若要通过语句scanf("%d,%d”,&a,&B.;使变量a得到数值6,变量b得到数值5,下面输入形式中错误的是()。
江苏c语言期末考试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的标识符?A. 2variableB. variable2C. variable-2D. variable_2答案:D2. 下列哪个选项是C语言中的合法整型常量?A. 0x1AB. 0X1AC. 0x1aD. 0X1a答案:A3. 以下哪个选项是C语言中的合法浮点数?A. 3.14B. 3.14eC. 3.14e2D. 3.14e2.5答案:C4. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!'"D. 'Hello, World!'答案:A5. 下列哪个选项是C语言中的合法数组声明?A. int array[10];B. int array[];C. int array[10][];D. int array[10][10];答案:A6. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);B. int add();C. int add(int, int);D. int add(int x, int y) {}答案:A7. 下列哪个选项是C语言中的合法指针声明?A. int *ptr;B. int *ptr[];C. int (*ptr)[];D. int *ptr[10];答案:A8. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student { int id; char name[50]; };B. struct { int id; char name[50]; };C. struct Student { int id; struct Student next; };D. struct { int id; char name[50]; } student;答案:A9. 下列哪个选项是C语言中的合法枚举声明?A. enum Color { Red, Green, Blue };B. enum { Red, Green, Blue };C. enum Color { Red = 1, Green = 2, Blue = 3 };D. enum { Red = 1, Green = 2, Blue = 3 };答案:A10. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI 3.14159C. #define PI 3.14159D. #define PI 3.14159答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以对字符串进行连接。
c语言数据类型考试题目及答案C语言数据类型考试题目及答案1. 以下哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D2. 在C语言中,一个int类型变量通常占用多少字节?A. 1B. 2C. 4D. 8答案:C3. 假设变量a的类型为int,变量b的类型为float,执行以下代码后,变量a的值是多少?```cint a;float b = 10.5;a = (int)b;```A. 10B. 11C. 10.5D. 0答案:A4. 以下哪个关键字用于定义一个字符常量?A. charB. stringC. intD. float答案:A5. 在C语言中,以下哪个选项不是合法的变量名?A. _myVarB. my_varC. 2myVarD. myVar2答案:C6. 以下哪个数据类型用于存储单个字符?A. intB. floatC. charD. double答案:C7. 如果一个变量的类型为double,那么它的值可以被存储为:A. 整数B. 小数C. 整数和小数D. 以上都不是答案:C8. 在C语言中,以下哪个运算符用于比较两个值是否相等?B. !=C. <=D. >=答案:A9. 以下哪个选项是C语言中的逻辑运算符?A. &&(逻辑与)B. ||(逻辑或)C. &(按位与)D. 以上都是答案:D10. 在C语言中,以下哪个关键字用于定义一个静态变量?A. staticB. constC. externD. volatile答案:A11. 以下哪个选项是C语言中的循环结构?A. ifB. switchC. whileD. for答案:C12. 在C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. void答案:C13. 以下哪个选项不是C语言中的文件操作函数?A. fopenB. fcloseC. printfD. fread答案:C14. 在C语言中,以下哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. ref答案:C15. 以下哪个选项是C语言中的数组?A. 一组具有相同类型的变量B. 一组具有不同类型的变量C. 一个变量D. 一个函数答案:A。
c语言程序设计基础试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中的合法整数?A. 0x10B. 0X1GC. 08D. 0L答案:A3. 在C语言中,用于定义一个函数的关键字是?A. defineB. functionC. defD. void答案:B4. C语言中,以下哪个是正确的字符串定义?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str = "Hello";D. char str[] = 'Hello';答案:A5. 在C语言中,以下哪个运算符用于求余?A. %B. /C. //D. %答案:A二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 如果一个函数没有返回值,应该使用________关键字声明。
答案:void3. 在C语言中,________运算符用于连接字符串。
答案:+4. C语言中,________运算符用于比较两个值是否相等。
答案:==5. 在C语言中,________关键字用于定义一个指针变量。
答案:*三、简答题(每题5分,共20分)1. 简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被当作指向数组第一个元素的指针。
数组的每个元素可以通过指针运算来访问。
2. 解释C语言中函数原型声明的作用。
答案:函数原型声明提供了函数的名称、返回类型和参数类型,但不需要函数体。
它允许在函数定义之前调用函数,同时帮助编译器检查函数调用的正确性。
3. 什么是C语言中的预处理指令,举例说明。
答案:预处理指令是C语言中的特殊命令,用于在编译之前处理源代码。
c语言编程题考试题库及答案一、单项选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12LB. 0x12.5C. 0x12.0D. 0x12F答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:C3. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(a, b);答案:A4. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:B5. 在C语言中,以下哪个选项是正确的指针声明?A. int *p = 0;B. int *p = "Hello";C. int *p = 5;D. int p = 0;答案:A二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是 ________ 。
答案:&&2. C语言中,表示逻辑“或”操作的运算符是 ________ 。
答案:||3. 在C语言中,表示逻辑“非”操作的运算符是 ________ 。
答案:!4. C语言中,表示赋值操作的运算符是 ________ 。
答案:=5. 在C语言中,表示取地址操作的运算符是 ________ 。
答案:&三、程序阅读题阅读以下C语言程序段,并回答问题。
```c#include <stdio.h>int main() {int a = 10, b = 20, c;c = a + b;printf("%d", c);return 0;}```1. 程序的输出结果是什么?答案:302. 如果将`c = a + b;`改为`c = a * b;`,程序的输出结果是什么?答案:200四、编程题1. 编写一个C语言程序,实现两个整数的加法运算,并输出结果。
编程题:1、根据矩形面积的计算方法,编写一个输入圆半径r,计算园周长L和圆面积S的程序。
注意判断圆半径r是否大于零。
#include <stdio.h>#define PI 3.1415926int main(){double c, r, area;printf("半径=");scanf("%lf", &r);c = 2 * PI * r;area = PI * r * r;printf("周长=%f,面积=%f\n", c, area);return 0;}2、输入三个整型数据,判断这三个整型数据能否围成三角形,如果能组成三角形,计算并输出它的面积,如果不能围成三角形输出“三条边不能围成三角形”。
#include<math.h>Void main(){Float a,b,c,d,s;s canf(“%f %f %f”,&a,&b,&c);if ((a+b))>c&&(a+b)>b&&(b+c)>a){d=(a+b+c)/2;s=sqrt(d*(d-a)*(d-b)*(d-c));printf(%5.2f %5.2%f 5.2%f The area is %5.2f\n”,a,b,c,s);}else{printf(“The data is wrong\n”)}}3、输入一个百分制成绩,输出对应的等级。
90·100:A,80~89:B,70~79:C,60~69D,不及格为E。
#include<stdio.h>void main(){int score,c;scanf("%d",&score);if(score<0)printf("input data error\n"); else{if(score>100)printf("input data error\n");else{c=score/10;switch(c){case 10:case 9: printf("A\n");break;case 8: printf("B\n");break;case 7: printf("C\n");break;case 6: printf("D\n");break;case 5:case 4:case 3:case 2:case 1:case 0: printf("E\n");break;}}}}4、编程实现 ⎝⎛<--=>+=0100012x x x x x y 。
c语言程序设计大一考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$答案:B2. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 下列哪个选项是C语言中的整型常量?A. 3.14B. '3'C. 0x1AD. "3"答案:C4. 在C语言中,哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A7. 在C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:C8. 下列哪个选项是C语言中的二维数组声明?A. int a[2][3];B. int a[][];C. int a[2][];D. int a[3,2];答案:A9. 在C语言中,哪个函数用于输出格式化的字符串?A. printf()B. scanf()C. fgets()D. fputs()答案:A10. 下列哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A二、填空题(每题2分,共20分)1. 在C语言中,字符常量可以用单引号括起来,例如:'a'、'1'、______。
答案:'\n'2. C语言中,用于定义一个空指针的是 ______ 。
答案:NULL3. C语言中,数组的下标从 ______ 开始。
结构化程序设计语言编写得程序由三种结构组成:顺序结构、分支结构与。
一个完整得C程序可以有多个函数,其中有且只能有一个名为得函数。
数学式所对应得C语言表达式为(m, 1/3、0)。
在调用函数fopen("d:\\b、dat", "r")时,若d盘根目录下不存在文件b、dat,则函数得返回值就是。
执行下面程序段中得语句“k= A*A+1;”后k得值就是。
#defineB 2#define AB+1k =A*A+1;已有定义“float m;double n;int a;longb;char c;”,则表达式m+n*a/m+b/n+c 值得类型为。
C语言有效得预处理命令总就是以开头。
已有定义“inta[10], *p=a+3;”,则数组a 得最后一个元素就是p[]。
已有定义“int n=12; doublea;”,则执行语句“a=n/=5;”后,a得值为。
若要声明一个类型名STR,使得定义语句STR s等价于char*s,则声明语句就是。
程序设计语言得发展经历了几个阶段:机器语言、汇编语言与。
一个C程序总就是从函数开始执行得。
已有定义“doublea=5, b=10;”,则计算ab得库函数调用形式就是。
已有定义“char ch='a';”,则表达式ch=ch-'a'+'A'得值为字符得编码。
表示“x≥y≥z”得C语言表达式就是x>=y 。
C语言有效得预处理命令总就是以开头。
常量'\n'得数据类型就是。
已有定义“int b[10], *p=b,*q;q=&b[5];”,则表达式q-p得值就是。
在文件中,以符号常量EOF作为文本文件(字符流文件)得结束标记,EOF代表得值就是。
若要声明一个类型名STR,使得定义语句STR s等价于char *s,则声明语句就是。
结构化程序设计语言编写得程序由三种结构组成:顺序结构、与循环结构。
表达式sizeof("key")的值是【】。
④③②①①1 ②2 ③3 ④4下面选项中,不能用作用户标识符的是【】。
①&a ②_00 ③FOR ④print已知有声明“int x=3, y=4, z;”,则执行语句“z=1/2*(x+y);”后,z的值是【】。
①0 ②3③3.5 ④4下列运算符中,优先级最低的是【】。
①* ②!=③+ ④=一元二次方程ax2+bx+c=0有两个相异实根的条件是a≠0且b2-4ac>0,下面选项中正确的表达式是【】。
①a!=0, b*b-4*a*c>0 ②a!=0||b*b-4*a*c>0③a&&b*b-4*a*c>0 ④!a&&b*b-4*a*c>0下面选项中,可以作为用户标识符的是【】。
①6_6 ②void③unsigned ④_0_已有定义“int n; float a, b;”,则执行语句“b=n=a=3.89;”后,b的值为【】。
①3 ②3.0③3.89 ④4.0下列运算符中,优先级最低的是【】。
①* ②!=③+ ④=表达式!(x>0&&y>0) 等价于【】。
①!(x>0)||!(y>0) ②!x>0||!y>0③!x>0&&!y>0 ④!(x>0)&&!(y>0)下面定义符号常量p为3.14中正确的是【】。
①#define p 3.14; ②#define p(3.14)③#define p=3.14 ④#define p 3.14在下面各组标识符中,均可以用作变量名的一组是【】。
①a02, Int ②table_1, a*.0③0_a, W13 ④for, point已知有声明“int x=3, y=4, z;”,则执行语句“z=1/3*(x+y);”后,z的值是【】。
①0 ②3 ③3.5 ④4已有定义“int a=4, b=5, c=6;”,则下列表达式中值为0的是【】。
①a&&b ②a<=b ③a||b&&c ④!(!c||1)在 C 程序中,用【】表示逻辑值“真”。
①小于0的数②非0的数③非1的数④大于0的数C源程序中的命令#include与#define是在【】阶段被处理的。
①预处理②编译③连接④执行下面定义符号常量p为3.14中正确的是【】。
①#define p 3.14; ②#define p(3.14)③#define p=3.14 ④#define p 3.14已有定义“int x=4, y=3, z=5;”,下面4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是【】。
①if(x>y) z=x, x=y, y=z; ②if(x>y){z=x, x=y, y=z;}③if(x>y) z=x; x=y; y=z; ④if(a>y){z=x; x=y; y=z;}下面关于continue和break语句的叙述中正确的是【】。
①continue和break语句都可以出现在switch语句中②continue和break语句都可以出现在循环语句的循环体中③在循环语句和switch语句之外允许出现continue和break语句④执行循环语句中的continue和break语句都将立即终止循环在while(e)语句中的e与下面条件表达式等价的是【】。
①e==0 ②e==1③e!=1 ④e!=0若函数调用时的实参为变量,则下面关于函数形参和实参的叙述中正确的是【】。
①实参和其对应的形参占用同一存储单元②形参不占用存储单元③相同名称的实参和形参占用同一存储单元④实参和其对应的形参占用不同的存储单元若变量已正确定义,语句“if(a>b) k=0; else k=1;”和【】等价。
①k=(a>b)?1:0; ②k=a>b;③k=a<=b; ④a<=b ? 0 : 1;下面关于continue和break语句的叙述中正确的是【】。
①continue和break语句都可以出现在switch语句中②continue和break语句都可以出现在循环语句的循环体中③在循环语句和switch语句之外允许出现continue和break语句④执行循环语句中的continue和break语句都将立即终止循环在C语言中while和do-while循环的主要区别是【】。
①do-while的循环体至少无条件执行一次②do-while允许从外部转到循环体内③while的循环控制条件比do-while的循环控制条件严格④do-while的循环体不能是复合语句关于函数返回值,下面叙述中正确的是【】。
①函数返回值的类型由函数体内return语句包含的表达式的类型决定②若函数体内没有return语句,则函数没有返回值③若函数体中有多个return语句,则函数的返回值是排列在最后面的return语句中表达式的值④函数返回值的类型由函数头部定义的函数类型决定已有函数fun的定义“int fun(int a, int b){ if(a<b)return (a, b);else return (b, a); }”,在main()函数中若调用函数f(3, 4),得到的返回值是【】。
①3 ②4③3和4 ④4和3已有预处理命令“#include <math.h>”和声明“int x=4, y;”,下面语句中语法正确的是【】。
①if(x%2=1)y=x; ②if(sqrt(x)%2)y=x;③if(x==1)y=x; ④if(x==1)y=&x;下面关于continue和break语句的叙述中正确的是【】。
①continue和break语句都可以出现在switch语句中②continue和break语句都可以出现在循环语句的循环体中③在循环语句和switch语句之外允许出现continue和break语句④执行循环语句中的continue和break语句都将立即终止循环下面关于循环语句的结论中错误的是【】。
①可以用while语句实现的循环,一定可以用for语句实现②可以用for语句实现的循环,一定可以用while语句实现③可以用do-while语句实现的循环,一定可以用while语句实现④do-while语句与while语句的区别仅是关键字“while”出现的位置不同C语言中函数返回值的类型是由【】决定的。
①return语句中的表达式类型②调用该函数的主函数类型③定义函数时所指定的函数类型④以上都可能已有函数fun的定义“void fun2(void) {printf("That’s great! ");}”,则调用fun2函数的正确形式是【】。
①fun2; ②fun2(); ③fun2(void); ④fun2(1);在C程序中,若对函数类型未加说明,则函数的隐含类型为【】。
①int ②double③void ④char下面函数中能正确计算n!(n<13)的是【】。
①long f(long n) ②long f(long n){ { if(n<=1)return 1;return n*f(n-1); else return n*f(n);} }③long f(long n) ④long f(long n){ static long s,i; { long s=1,i;for(i=1;i<=n;i++)s=s*i; for(i=1;i<=n;i++)s=s*i;return s; return s;} }设n=10,i=4,则赋值运算“n%=i+1”执行后n的值是【】。
①0 ②1③2 ④3已有定义“int a=2;”,下面表达式中值不等于8的是【】。
①a+=2,a*2 ②a+=a*=a③(a+7)/2*((a+1)%2+1) ④a*7.2/a+1下面表示中,不能用作C语言常量的是【】。
①0UL ②(long)110③1e0 ④'\x2c'下面关于return语句的叙述正确的是【】。
①一个自定义函数中必须有一条return语句②一个自定义函数中可以根据不同情况设置多条return语句③定义成void类型的函数中可以有带返回值的return语句④没有return语句的自定义函数在执行结束时不能返回到调用处已有定义“int a,b;",执行语句“a=(b=2*3,b*5),b+6;”后,变量a的值是【】。
①6 ②12③30 ④36表达式sizeof("\nsum=13\n") 的值是【】。
①8 ②9③10 ④11已有定义“int i, a=1; unsigned j;”,则下列语句执行时会出现无限循环的语句是【】。
①for(j=15; j>0; j-=2)a++; ②for(j=0; j<15; j+=2)a++;③for(i=0; i<15; i+=2)a++; ④for(i=15; i>0; i-=2)a++;下面定义中错误的是【】。
①int a=0xFF; ②double a=1.2e0.5;③long a=2L; ④char a='\72';C语言规定,变量作实参时,它和对应形参之间的数据传递方式是【】。
①地址传递②单向值传递③由实参传给形参,再由形参传回给实参④由用户指定传递方式若有“int k=4;”,计算表达式(j=k++)后,j和k的值分别为【】。
①j=3, k=3 ②j=3, k=4③j=4, k=4 ④j=4, k=5下列运算符中,优先级最高的是【】。
①-> ②++③&& ④=不用第三个变量,将a和b的值进行交换的操作是【】。
①a+=b;b-=a;a-=b; ②a+=b;b=a-b;a-=b;③b-=a;a-=b;a-=b ; ④b-=a;a=b-a;a+=b;下列表示中,不可作为C语言常数的是【】。
①010 ②1UL③'0x41' ④0xbe设有定义和声明如下:#define d 2int a=3; float b=3.14; char c='d';下面表达式中有语法错误的是【】。
①a++ ②b++③c++ ④d++若有枚举类型定义“enum vari{A1, A2, A3, A4=6, A5, A6};”,则枚举常量A2和A6代表的值分别是【】。
①1,6 ②1,8③2,6 ④2,8下面数组声明语句中正确的是【】。
①int n, a[n]; ②int a[];③int a[2][3]={{2},{1},{3}}; ④int a[ ][3]={{2},{1},{3}};下面函数定义中正确的是【】。