c语言阅读程序题
- 格式:doc
- 大小:121.50 KB
- 文档页数:32
C语言考试题(1-5章)答案一、阅读程序题(每题5分,共40分)1.阅读程序,写出程序运行结果。
#include <stdio.h>int main(){char c1,c2;float d,e;c1='a';c2='b';d=3.567;e=-6.872;printf("c1=%d,c2=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",c1,c2,c1,c2,d,e);return 0;}答案:c1=97,c2=98c1=a,c2=bd= 3.57,f= -6.872.阅读程序,写出程序运行结果。
#include <stdio.h>int main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);return 0;}答案:9,11,9,103.若输入4,程序运行结果为【1 】,若输入-4,运行结果为【2 】,若输入10,运行结果为【3 】。
#include<stdio.h>Int main(){ int x,y;scanf("%d",&x);if(x<1){ y=x;printf("x=%d,y=x=%d\n",x,y);}else if(x<10){ y=2*x-1;printf("x=%d,y=2*x-1=%d\n",x,y);}else{ y=3*x-11;printf("x=%d,y=3*x-11=%d\n",x,y);}}答案:【1 】x=4, y=2*x-1=7【2 】x=-4, y=x=-4【3 】x=10, y=3*x-11=194.阅读程序,写出程序运行结果。
#include<stdio.h>int main(){int a=10,x=100,y=20,ok1=15,ok2=0;if(x>y)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;elsea=-1;printf("%d\n",a);return 0;}答案:-15.阅读程序,写出程序运行结果。
《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。
#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
《C语言程序设计》练习三三、阅读分析题1.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){int x=8,y=-5;printf(〃x= %d,y= % d \ n〃,x,y);x=x+y;y=x-y;x=x-y;printf(〃x= %d,y= %d \ n〃,x,y);}2.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){int x=156,a,b,c;if(x>100){a=x/100;x=x%100;}if(x>10){b=x/10;c=x%10;}printf(〃%3d%3d%3d%3d〃,a, b, c, a*b*c);}3.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){int k=4,i;for(i=0;i<4;i++){switch(k){case 4:printf(〃#〃);case 3:printf(〃*〃);default:printf(〃\n〃);break;case 2:printf(〃$〃);case 1:printf(〃@〃);}k--;}}4.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>f( ){int a=3;static int b=4;a=a+1;b=b+1;printf(〃a= %d,b= %d\n〃,a,b);}void main( ){f( );f( );f( );}5.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){2int i,j, *p[4],a[12]={1,2,3,4,5,6,7,8,9,10,11,12};p[0]=&a[0];p[1]=&a[3];p[2]=&a[6];p[3]=&a[9];for(i=0;i<4;i++){for(j=0,j<3;j++)printf(〃%4d〃,p[i][j]);printf(〃\ n〃);}}6.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。
《C语言程序设计》期末笔模拟试卷(本试卷满分60分)院系学号姓名1. 答案均写在答题纸上,写在卷面上无效;2. 答题结束后将试卷及答题纸全部交给监考教师;一、单选题 (1分×16,共16分)1. 下面 (1) 是正确的局部数组声明CA. char a[][5]={“math”,“phy”,“chemi” };B. int b[3][3]={{1,2,3},4,5,6,7,{8,9}};C. float c[sizeof(sin(1))]={1,‘\n’};D. char ch[ ][10]={“Beijing”,“Nanjing”},*p[ ]={ ch[0],ch[1] };2. 如下哪个程序语法、语义都正确,且能获得正确的运行结果(2) A3. 若有声明:enum d{ e,s,w,n}c=s;则表达式“ops”+ c值的类型是 (3) 。
B A. enum d B. char * C. int D. int *4. 下列叙述中除 (4) 之外都是正确的。
BA.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。
B.不能用extern定义一个外部变量、数组。
C. 无论在函数外还是在函数内说明引用本程序中定义的函数,都可不写extern关键字。
D.用extern说明引用一个外部数组时,可以不给出数组大小。
5. 下列能正确执行的程序是: (5) A6. 对于二维数组定义: int a[i][j]; (i、j均为常量),且有:0≤m<i,0≤n<j , 则下列除 (6) 外,都是不等价的。
BA. a+m 与 a[0]+mB. a+m 与 *(a+m)C. *(a+m) 与 *a[m]D. *a 与 *a[0]7. 若程序中有声明:“float a,b[3][4];”与引用函数的说明:“int fun(floatk[][3]),int n);”则下列 (7) 都是常量或常量表达式。
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语言程序,实现两个整数的加法运算,并输出结果。
C语言程序设计试题及答案(十)一、选择题:1.以下不是C语言的特点的是( )A.C语言简洁、紧凑B.能够编制出功能复杂的程序C.C语言可以直接对硬件进行操作D.C语言移植性好2.以下不正确的C语言标识符是( )。
A.ABC B.abc C.a_bc D.ab.c3.一个c程序的执行是从( ).A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4.以下不正确的语句(设有intp,q)是( )。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q5.下列四组选项中,均不是C语言关键字的选项是( ).A.define B.getc C.include D.whileif char sanf gotype printf case pow6.下面四个选项中,均是合法整形常量的选项是( ).A.160B.-0xcdfC.-01D.-0x48 a-0xffff 01a 986,012 2e5011 0xe 0668 0x7.下面四个选项中,均是不合法浮点数的选项是( ).A.160.B.123C.-.18D.-e 30.12 2e4.2 123e4 0.234e3 .e5 0.01e38.若有代数式3ae/bc,则不正确的C语言表达式是( )A.a/b/c*e*3B.3* a*e/b/cC.3*a*e/b*cD.a*e/c/b*39.若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为( ).A.7B.8C.9D.1010.若有定义:inta=7;floatx=205,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。
A.2.500000B.2.750000C.3.500000D.0.00000011.sizeof(float)是( )。
c语言程序设计试题及答案第一章基础知识一、填空1.每个C程序都必须有且仅有一个________函数。
2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3.软件是程序,以及______、使用和维护所需要的所有文档。
4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类6.C语言是由________组成的。
7.C语言的函数可分为主函数main、标准库函数和_________。
8.一个函数是由两部分组成的,即:________和函数体。
9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14.C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言。
C 语言程序设计期末考试卷及答案一、单项选择题。
从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内(每小题1分,共计30分)。
1.一个C 语言程序的执行是从()。
A )本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B )本程序的main 函数开始,到main函数结束C )本程序的main 函数开始,到本程序文件的最后一个函数结束D )本程序文件的第一个函数开始,到本程序的main 函数结束2.下列选项中不属于...C 语言关键字的是()。
A )switchB )printfC)default D )case3.设有语句inta=4;,则执行了语句a+=a-=a*a;后,变量a 的值是()。
A )24B )-24C )4D )164.已知inti;floatd;,则正确的表达式是()。
A )(intd)B )int(d)%iC )(int)d%iD )int(d%i) 5.已知inti,a;,执行语句i=(a=3*9,a/5),a+11;后,变量i 的值是()。
A )5 B )16C )27D )386.下列选项中合法的字符型常量是()。
A )"a"B )'\n'C )7.下面程序的运行结果是()。
#include<stdio.h> voidmain() {intk=15;printf("k=%d,k=%o,k=%x\n",k,k,k);}A )k=15,k=15,k=15B )k=15,k=17,k=17C )k=15,k=017,k=0xfD )k=15,k=17,k=f 8.已知a,b,c 为int 类型,执行语句:scanf ("%d%d%d",&a,&b,&c );使得a 为10,b 为20,c 为30,以下不正确...的输入形式是()。
A )10B )10C )10,20,30D )102020203030 309.已知intx=1,y=2,z=3;,执行下列程序段后,输出的结果是()。
C语言选择题读程序习题及参考答案一、选择题1、一个C程序中可以包含多个不同名的函数,但有且仅有一个。
(A)function (A)分号(B)include (B)逗号(B)print(C)main (C)句号(C)case(D)stdio (D)括号(D)default2、在C语言中,每个语句和数据定义都是用结束的。
3、不是C语言中提供的合法关键字。
(A)switch4、在C语言中,数据类型属于基本类型的是。
(A)整型、实型、字符型(C)结构体类型、实型(A)A p_0 do(B)空类型、枚举型(D)数组类型、实型5、下面四个选项中,均为不合法的用户标识符的是。
(B)float la0 a (D)123 temp INT(C)18和6(D)15和5(C)b-a goto int (A)9和66、语句int i=3,k; k=(i++)+(i++)+(i++); 执行后k和i的值分别为。
(B)12和57、判断字符串a和b相等,应当使用。
(A)if ( a = = b )(B)if ( !strcmp (a , b) ) (D)if ( strcmp (a , b) )(C)if ( strcpy ( a , b ) ) 是。
(A)a&&b(A)(B)(C)(D)10、已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是。
(A)scanf(�D---‖,&i,&j,&k); (B)scanf(�D%d %d %d‖,&i,&j,&k); (C)scanf(�D%d,%d,%d‖,&i,&j,&k); (D)scanf(�Di=%d,j=%d,k=%d‖,&i,&j,&k);11、能正确表示�Dx的取值范围介于[1,10 ]和[200, 210 ]之间�D的表达式是。
“程序设计基础--C”试卷试题一、单项选择题(每小题 2 分,共20 分)1.C 语言程序的三种基本结构是顺序结构、选择结构和______结构。
A、循环B、递归C、转移D、嵌套2.若x是单精度实型变量,表达式(x = 10/4) 的值是_____ 。
A、2.5B、2.0C、3D、 23. 表达式!x 等价于_____。
A、x==0B、x==1C、x != 0D、x != 14.若变量已正确定义且k 的值是4,计算表达式( j = k--) 后,_____。
A、j=3, k=3B、j=3, k=4C、j=4, k=4D、j=4, k=35. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。
A、算术运算、赋值运算、关系运算B、关系运算、赋值运算、算术运算C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算6.C语言中,形参的缺省的存储类说明是______。
A、autoB、staticC、registerD、extern7.下列语句定义pf为指向float类型变量f的指针,_____是正确的。
A、float f, *pf = f;B、float f, *pf = &f;C、float *pf = &f, f;D、float f, pf = f; 8.表达式sizeof(“key”) 的值是______。
A、1B、2C、3D、49.将程序prog.c编译后运行:prog –nla hello world 则*(*(argv+2)) 是______。
A、’p’B、‘-‘C、‘h’D、‘w’10.若a是整型变量,表达式~(a ^ ~a ) 等价于______。
A、~aB、1C、0D、2试题二、填空题(每小题 3 分,共24 分)1.写出语句printf ("%d, %o, %x", 0x12, 12, 012); 的输出结果。
2.写出下列程序段的输出结果。
阅读程序题(共13分)6.以下程序运行时输出结果是(6 ) 。
#include<stdio.h>#define M 3#defme N M+1#define NN N*N/2main() .{printf("%d\n",NN);}7.以下程序运行时输出结果是(7) 。
#include <stdio.h>main(){char a=256:int d=a;prinff("%d",d+1);} 、8•有如下程序,假定所用编译系统用两个字节存储一个int型操作数,已知输出结果第一行是FFD2,则第二行应当是( 8)main(){int a[10]={1,2,3,4,5,6,7,8,9,0},*p;P=&a[5];printf("%X\n",p);printf("%X\n",p-1);9•以下程序运行时输出结果的第一行是(9) ,第二行是(10)。
int C:void fl(int x,int *sum){static int y;x++;y++;c=c+y;*sum=(x+y)/c;}main(){int a,b=100:for(a=O;a<2;a++){f1(a,&b);printf("%d%d%d\n",a,b,c)} ,10.以下程序运行时输出结果的第一行是___(11)_______,第三行是______(12)__________#include<stdio.h>void mat_change(int b[4][4]){int i,j,m,n,k,c[6][6];for(i=0;i<6;i++)for(j=0;j<6;j++) c[i][j]=1;for(i=1;i<5;i++)for(j=1;j<5;j++) c[i][j]=b[i-1][j-1];for(i=1;i<5;i++)for(j=1;j<5;j++){if(c[i][j]==0){k=0;for(m=-1;m<=1;m++)for(n=-1;n<=1;n++)if(!(m==O&&n==O))k=k+c[i+m][j+n];if(k==8)c[i][j]=1;}}for(i=1;i<5;i++)for(j=1;j<5;j++)b[i-1][j-1]=c[i][j];}main(){int i,j,a[4][4]={{0,1},{1,1,1,l},{0,1,0,1},{0,1,1,1}};mat_change(a);for(i=0;i<4;i++) .{for(j=0;j<4;j++)printf("%d",a[i][j]);printf("\n");}}11.以下程序运行时输出结果是(13) 。
#include<stdio.h>void f(int a[],int n,int x,int *c);main(){int a[10]={1,3,5,2,3,5,3,7,4,1},t=0;f(a,10,5,&t);printf("%d",t);}void f(int a[],int n,int X,int *c){if(n==0)return;if(a[O]>=x)(*c)++;f(a+1,n-1,x,c);}12.以下程序运行时输出结果的第一行是(14) ,第二行是(15) ,第三行是(16) #include<stdio.h>typedef struct s{int index;int value;}M;main(){static int i,j,k,c[4][4];M a[10]={{0,1},{3,2},{5,3},{6,4},{9,5},{15,6},{-l,0}},*p=a,b[10]={{1,1},{3,2},{4,3},{6,4},{lO,5},{13,6},{-1,0}},*q=b;while(p->index!=-1){i=p->index/4;j=p->index%4;c[i][j]=P->value;p++;}while(q->index!=-1){i=q->index/4;j=q->index%;c[i][j]+=q->value;q++;}for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%d",c[i][j]);printf("\n");}}13.以下程守运行时输出结果的第一行是__(17)______ ,第二行是____(18)________ 。
void q(char *s,int left, int right){ int i,j;char x,y;i=left; j=right;x=s[(1eft+right)/2];do{while(s[i]>x&&i<right)i++:while(s[j]<x&&j>left)j--;if(i<=j){ y=s[i];s[i]=s[j];s[j]=y;i++;j--;}}while(i<=j);}main(){char strl[6]="abcde",str2[7]="25134";q(strl,0,4);puts(strl);q(str2,1,4);puts(str2);}●完善程序题(共12分) 714.如果一个两位整数是质数,将组成它的两个数字交换位置后形成的整数仍为质数,则称这样的数为绝对质数。
例如,13就是一个绝对质数。
以下程序用于找出所有两位绝对质数。
#include<stdio.h>int a_prime(int n){int j,k,m[2];m[O]=n;m[1]= _____(19)_______ ;for(j=0;j<2;j++)for(k=m[j]/2;k>1;k--)if( (20) )return 0;return 1;}main(){int i;for(i=10;i<100;i++)if(a_prime(i))printf("%d",i);}20 i15.计算∑∑n!的值,即求(1!)+(1!+2!)+(1!+2!+3!)+…+(1!+2!+3!+…+20!) i=1 n=1main(){int i,n;double s=0,t;for(i=1;i<=20;i++){ ________(21)__________ ;for(n=1;_____(22)___________ ;n++){ t=t*n;s=s+t;}}printf("1!+(1!+2!)+…+(1!+2!+…+20 !)=%e\n",s);} .16.以下程序中函数strmerge的功能是:合并a和b两个有序的字母字符串(字典序)而产生一个新的字符串,在合并的过程中删除重复出现的字符,合并后的字符串仍然保持原序并保存到c指向的数组中,函数返回在合并过程中删除的字符个数。
main函数中输出合并后的字符串“copy”以及在合并过程中删除的字符个数3。
include<stdio.h>int strmerge(char *a,char *b,char *c){int i=0,j=0,k=O;char t;while(a[i]!='\0' && ( 22 ){if(a[i]==b[j]){t=a[i];i++;( 24 );}elseif(a[i]<b[j])t=a[i++];elset=b[j++];if(t!=c[k-1])( 25 ) =t;。
}while(a[i])if(a[i]!=c[k-1]).c[k++]=a[i++];elsei++:while(b[j])if(b[j]!=c[k-1])c[k++]=b[j++];elsej++;e[k]='\0';return ( 26 ) ;}main(){static char s1[10]="ccp",s2[10]="oppy",s3[20];int n;n=strmerge(sl,s2,s3);puts(s3);printf("%d",n);}17.设某链表上每个结点的数据结构为typedef struct node{int d;struct node *next;}NODE;函数NODE *invert(NODE *head)的功能是:将head指向的单链表逆置,即原链表最后一个结点变为第一个结点,原来倒数第二个结点变成第二个结点,以此类推。
在逆置过程中不建立新的链表。
NODE *invert(NODE *head){NODE *P,*q,*r;if(head==0|| ( (27) )return head;P=head;q=P->next;while(q!=0){r= ( 28 ) ;q->next=p;p=q;q=r;}( 29 ) =O;head= ( 30 ) ;return head;}(6)6 (7)1 (8)FFD0 (9)021 (10)113(11)1100 (12)0111 (13)3 (14)1104 (15)3380 (16)0550 (17)edcba (18)25431(19)n/10+n%10*10 (20)m[j]%k==0 (21)t=1 (22)n<=i (23)b[j]!=‟\0‟ (24)j++(25)c[k++] (26) i+j-k (27)head->next==0 (28)q->next (29)head->next (30) p●阅读程序题(共11分)6.以下程序运行时输出结果是( 6 ) 。
#define PT 3.14#define S(x) PT*x*xmain() ‟{int a=2;printf("%4.1f",6.28/S(a));}7.已知int型变量的存储字节数为2,以下程序运行时输出结果是( 7 )。
#include<stdio.h>main(){int a=3,b=2,c=7,d=6,e=8;long f=a*10000+b*1000+c*100+d*10+e;printf("%ld",f);}8.以下程序运行时输出结果是( 8 ) 。