C复习题 C

合集下载

C语言复习60题

C语言复习60题

01计算机本身最擅长的能力是?A、推理B、想像C、重复D、分析正确答案: C、重复。

02 计算机(CPU)能够直截了当运行人类编写的程序A、√B、×正确答案: B、×、03编程语言是与计算机交谈的语言A、√B、×正确答案: B、×。

04 关于C语言,以下讲法错误的有:A、C语言是与Unix操作系统一同发展起来的B、C语言不能写图形界面的软件C、C语言一般是编译执行的D、C语言诞生于1970年代正确答案: B、C语言不能写图形界面的软件、06 IDE的中文翻译是什么?正确答案是:集成开发环境、07 给定:int a,b; 以下哪些scanf的使用是正确的?A、scanf("%d”,&a); scanf(”%d",&b);B、scanf(”%d %d”, &a, &b);C、scanf("%d, %d", &a,&b);D、scanf("%d%d”, a, b);正确答案: A、scanf("%d”,&a); scanf(”%d", &b);。

B、scanf(”%d%d", &a, &b);、C、scanf(”%d,%d”,&a,&b);、08 以下哪些是有效的变量名?A、mainB、4everC、monkey—kingD、__int正确答案:A、main。

D、__int。

09给定:inta,b; scanf("%d %d", &a, &b);则以下哪些输入方式是正确的?A、1 2B、1,2C、1(回车)2D、1、2正确答案:A、1 2。

C、1(回车)2、10给定以下代码段:inta,b=0;则a的初始值是0A、√B、×正确答案: B、×、11写出下式的运算结果:10/3、0*3 正确答案是:10、0。

12写出下式的运算结果:10/3*3、0正确答案是:9、0。

C语言复习题(答案)

C语言复习题(答案)

1.编程计算球的体积(V=34πr3),要求半径通过键盘输入,π的值定义为符号常量PI ,输出结果保留两位小数,输入前和输出时要求给出含义明确的提示信息。

#include<stdio.h>main(){float r,v;scanf(“%f ”,&r)v=4/3*PI*r*r*r;printf(“v is %.2f ”,v);}2.输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。

#include<stdio.h>main(){int n,s,g,b;printf(“please input n:\n ”);scanf(“%d ”,&n);g=n%10;s=n/10%10;b=n/100;printf(“%d”,100*g+10*s+b);}3.输入三角形的边长,求三角形的面积(面积=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)。

#include <stdio.h>main(){int a,s,c,b;printf(“please input a,b,c:”);scanf(“%d,%d,%d”,&a,&b,&c);while(a+b)<=c||(a+c<=b||(b+c)<=a);{printf(“please input a,b,c:”);scanf(“%d,%d,%d”,&a,&b,&c);}s=(a+b+c)/2;area=sqrt(s*(s-a)(s-b)(s-c));printf(“area is:%d\n”,area);}4. 输入3个字符,反向输出这3个字符和它们的ASCII码。

#include <stdio.h>main(){char ch1,ch2,ch3;printf("please input ch1&ch2&ch3:");scanf(“%c%c%c”,&ch1,&ch2,&ch3);printf(“%c\t%c\t%c\n”,ch3,ch2,ch1);printf(“%d\t%d\t%d\n”,ch3,ch2,ch1)}5.编程计算圆的面积(S=πr2),要求半径通过键盘输入,π的值定义为符号常量PI,输出结果保留两位小数,输入前和输出时要求给出含义明确的提示信息。

c语言习题

c语言习题

二.填空题 1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 _1B__,其数值范围为 0~127 ;一个int数据在内存中所占字节数为 2B ,其数值范围为-32768~32767 ;一个long数据在内存中所占字节 数为 4B ,其数值范围为 -2147483648~2147483647 ;一个float 数据在内存中所占字节数为 4B ,其数值范围为 -3.4*1038~-3.4*10-38, 3.4*10-38~3.4*1038 。 2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且 第一个字符必须为 字母 。 3.字符常量使用一对 单引号 界定单个字符,而字符串常量 使用一对 双引号 来界定若干个字符的序列。
3.函数体一般包括( 变量定义序列 ) 和( 执行语句序列
二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结 束。 【 √ 】 2.main函数必须写在一个C程序的最前面。 【 × 】 3.一个C程序可以包含若干的函数。【 √ 】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运 行不起任何作用。但是可以增加程序的可读性。【 √ 】 5.C程序的注释只能是一行。【 × 】 6.C程序的注释不能是中文文字信息。【 × 】 8.可以使用Turbo C来编译和连接一个C程序。【 √ 】 9.可以使用Turbo C来运行一个C程序。【√ 】 10.可以使用Turbo C来实时调试(即动态调试)一个C程序。【 √ 】 三.简答题 1. 写出一个C程序的基本结构。 预处理命令序列 void main() { 变量定义序列 执行语句序列 } 2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。 1)编辑源程序,以扩展名.c存盘。

《计算机语言C》复习题

《计算机语言C》复习题
A) 11B) 10C) 9D) 8
main()
{ int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
46.设有变量说明"static int a[2][3]={1,2,3,4,5,6};int m,*ptr=&a[0][0];"执行语句m=(*ptr)*(*(ptr+2))*(*(ptr+4));后,m的值为______。
}
}
A) 11B)10C) 9D) 10 11
27.当执行以下程序段时
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
x=-1;
do { x=x*x;} while(!x);
28.有如下程序,该程序段的输出结果是
main0
{ int n=9;
while(n>6) {n--;printf("%d",n);}
A)4个字节B)5个字节C)6个字节D)7个字节
3.合法的数组定义是
A) int a[]="string";B) int a[5]={0,1,2,3,4,5};
C) chars="string";D) char a[]={0,1,2,3,4,5};
4.下列描述中不正确的是
A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出
C)S是struct类型的变量D)T是struct S类型的变量
8.若有以下说明和定义,以下叙述正确的是______。

C期末考试复习题(答案)

C期末考试复习题(答案)

C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。

A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。

A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。

A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。

A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。

A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。

C语言程序设计期末考试复习题及答案

C语言程序设计期末考试复习题及答案
5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )
A)称为函数的直接递归调用 B)称为函数的间接递归调用
C)称为函数的循环调用 D)C语言中不允许这样的递归调用
6.以下叙述中正确的是 ( A )
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);}
程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c
9.有以下函数定义:(c)
void fun(int n, double x) { …… }
1 main()
2 { int x;
3 if (x=90) printf(“right”);
4 else printf(“error”);
}
行号: 改为: main()
2 { char s[]=”china”;
(4) main()
{ int a,b;
a=5;
b=8;
p(a,b);
p(a+b,a);
}
p(int x,int y)
{
y=x+y;
printf(“%d %d”,x,y);
}
程序的运行结果是:
A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}
C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);

(完整版)C语言各章节复习题(带答案)

(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题选择1.一个C程序的执行是从。

A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。

A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。

A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。

A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。

A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。

A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。

C语言复习题及参考答案

C语言复习题及参考答案

C语言复习题及参考答案一、单项选择1、以下叙述正确的是:__B__。

A)C语言的源程序不必通过编译就可以直接运行。

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。

C)C语言源程序经编译形成的二进制代码可以直接运行。

D)C语言中的函数不可以单独进行编译。

2、以下4个用户定义标识符中,全部合法的一组是__A__。

A)_main enclude sin B)if –max turbo C)txt REAL 3COM D)int k_2 _001 3、以下不能定义为用户标识符的是_D__。

A)scanf B)Void C)_3com D)int4、C语言中用于结构化程序设计的3种基本结构是__A__。

A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue5、为解决某一特定问题而设计的指令序列称为__C__。

A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为__C__。

A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是__B__。

A)编辑程序B)编译程序C)驱动程序D)链接程序8、下列叙述中,正确一条是__C__。

A)计算机语言中,只有机器语言属于低级语言。

B)高级语言源程序可以被计算机直接执行。

C)C语言属于高级语言。

D)机器语言是所用机器无关的。

9、以下符合C语言语法的实型常量是__C__。

A)1.2E0.5B)3.14159E C).5E-3D)E1510、下面叙述正确的是__A___。

A)C程序中注释部分可以出现在程序中任何合适的地方。

B)花括号“{”和“}”只能作为函数体的定界符。

C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。

D)分号是C语句之间的分隔符,不是语句的一部分。

11、设有以下定义:int a=0; double b=1.25; char c=’A’;#define d 2则下面语句中,错误是__D__。

C语言模拟复习题及答案

C语言模拟复习题及答案

一、选择题1. 以下叙述错误的是 A 。

A.C程序在书写时,有严格的缩进要求,否则不能编译通过B.一个C程序只能有一个主函数C.一个C程序可以包含多个不同名的函数D.C程序的主函数必须用main作为函数名2. 下列程序段的输出结果是 4 3 2 1 。

void fun(int *x, int *y){ printf("%d %d ", *x, *y); *x=1; *y=2;}main(){ int x=3,y=4;fun(&y,&x);printf("%d %d",x, y); }3. 若有定义语句:int x=3,y=2,z;在其后执行语句z=0.9+x/y;则z 的值为 1 。

4. 有以下程序#include <stdio.h>main(){ int a;scanf("%d",&a);if(a++<8) printf("%d\n",a);else printf("%d\n",a--); }程序运行时键盘输入8<回车>,则输出的结果是9 。

5. 以下定义整型3行4列的二维数组a并初始化不正确的是C 。

A.int a[3][4]={0} B.int a[][4]={0,1,2,3,4,5,6,7,8,9,10,11,12}C.int a[3][]={0,1,2,3,4,5,6,7,8,9,10,11,12} D.int a[3][4]={{1,2},{1,2,3},{1,2,3,4}}6. 有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=k;case 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c); }程序运行后的输出结果是 3 。

C综合复习题.docx

C综合复习题.docx

C程序设计综合复习题目录一、单项选择题 (1)二、填空题 (8)三、程序分析题 (9)四、程序填充题 (16)五、编程题 (21)1.分支结构 (21)2.循环结构 (22)3.数组、函数、指针 (22)4.结构体 (22)一、单项选择题1.可以作为自定义标识符的是()A. 2x B • breakC. m-n D • m_n2.C语言的保留字(关键字)是()A. defineB. enumC. mainD. includc3 •错误的实型(浮点型)常数是()• •A. 0B. 0.E0C. 0.0D. 0E4-0.04.无条件转移语句的一般形式是:goto语句标号;,其中的语句标号可以是()A.整型数B.标识符C.保留字D.实型数5.正确的变量定义是()A. unsigned long d=1000;B. float ml=m2=10.0;C. char cl=,A,,c2=A; D・ double x=0.618,x=3.14;6.表达式的值为0的是()A. 5/5%5B. 5>2C・!4 D・ 0x7&77•设int a;侧表达式a=2,4,a+l的值是()A.lB.2C.3D.4&设int i; Hoat f; double d; long int c;,则表达式10+' a' +i*f-d/c 结果的类型是()A.doubleB.longC. intD. float9.设int a;,则语句for(a=0;a==0;a++);和语句for(a=0;a=0;a++);执行循环的次数分别是()A.0, 0B.0, 1C.l, 0D.l, 110.if(表达式)和while(表达式)中的“表达式”()A.只能是逻辑的B.只能是关系的C.只能是算术的D.以上三种都可以11.设int a=0,b=0,m=0,n=0;,则执行(m=a==b) II (n=b==a)后m 和n 的值分别是()A.0, 0B.0, 112. 设int a ?b;为使变量a 和b 分别获得数据10和20,则下列正确的是()A. scanf (”%d,%d”,&a,&b );输入数据:10, 20<回车〉B. scanf (”%d,%d”,&a,&b );输入数据:10 20<回车〉C. scanf (”%d,%d”,&a,&b );输入数据:D. scanf ("%d,%d", a,b );输入数据:13. 对于函数,正确的说法是()C •必须有返回语句 14•设 int a [3] [4];,则与元素 aD •必须有形式参数[0] [0]不等价的表达形式是()■D. 2设char s[10]=n abcde H ,t[ ]=M 12345°;,则s 和t 在内存中分配的字节数分别是() 6和5 B. 6和6设 int a=10,*p=&a;,则执行 printf(n %d\n M ,*p+a);的结果是( )A.可以嵌套定义 B •定义时有些函数名前可以带星号A.*aB.* *aD.*(*(a+O)+O)C.*a[0] 15.设 char si [ ] ={,a ,;b';c ,},s2 [ ] ="abc";,则数组 si 和 s2 的长度分别是()A.2, 3B.3, 3C.3, 4D.4, 416. A. 设int a=l,b=2;,则执行a=b+2,a++,a+b ;后a 和b 的值分别是()1和2 B. 3和2C. D. 5 和 217. 设 int a=2,b=3,c=4;,则表达式 a>b&&b<c||b 的值是A. -1B. 0a=10, b=20<冋车〉10, 20<回车〉C. 18. A. C. 设int a=2,b=3,x,y;,则能正确执行的语句是( )scanf(z , %d,%d" ,x ・y,x+y); B. printf(,/ printf(" ,a+b); D. scanf(" %d\n" ,a%b);%d,%d" ,x,y);19. A. C. 10和5 D. 10 和 6 20. A. 10 B. 20C. 30D. 4021. 自定义函数中形式参数的作用域是()A. 本文件B.本函数C. main 函数D.整个程序设 int b[ ][5]={1,2,3,4,567} — 则元素b[l][2]的值是()A. B.C. D.23. 对函数而言,叙述正确的是(A. 函数中只能有一个return 语句B.当函数的形参是数组时形实结合为值传递方式C.程序中只能有一个main函数D.无参函数的函数体内不能出现return语句24.执行下列程序段后输出的结果是()int x,y,z=l;for(x= 1 ,y=・ 1 ;x<y;x++,y・・)z++;printf(M%d\n M,z);A. 1B. 2C. 5D. 625.设static int a[3]={l,2,3};int*p[ ]={&a[0],&a[l],&a[2]};则与数组元素a[l]等价的是()A. *p[l] B・ p[l]C. *p+lD. p+126.设struct{char name[10];int age;}stu[2]={{ ” Tom" ,25},{〃Mary" ,26}}?p=stu;则执行语句printf(" %s%d\rT ,p->name,stu[ 1 ].age);后输出结果是( ) A. Tom25 B・ Tom26C. Mary25D. Mary2627.设typedef double DB;,则与DB u[5];的等价形式是()A. double db[5]; B・double DB[5];C. double u;D. double u[5];2&设char ch,str [4], *strp;,则正确的赋值语句是()A. ch=”MBA”;B. str=n MBA n;C. stip=”MBA“;D. *strp=”MBA”;29.设typedef char *POINT;POINT p,q [3] ,*r;,则p、q和1•分别是字符型的()A.变量、一维数组和指针变量B.变量、二维数组和指针变量C.指针变量、一维数组指针和二级指针变量D.指针变量、一维指针数组和二级指针变量30.若变量定义时未初始化,则其值不确定的是()■A.静态全局变量B.局部变量C.静态局部变量D.全局变量31.设struct{int a; char b;}Q,*p=&Q;,则够谡的表达式是()B. (*p).b D. p->a32.在某文件中,若全局变量与局部变量同名,贝!)()A.视为同一个变量 B.变量作用域不确定 C.不允许 D.允许 33•设宏定义#define P (x ) x/x则执行语句printf (u %d\n n ,P (4+6));后的输出结果是()A.lB.8.5D.11.534•屈于C 语言基本数据类型的是(B ) A.指针型 C.数组型 B.无符号整型D.结构型35.C 语言的长整型数值在计算机中占用的字节个数是() A.1 C.3 36.C 语言屮, A.1 C.4 B.2D.4”\x3d”在内存屮占用的字节数是(B )B.2D.537•设 int x;则执行 printf(n %x\n H ^x A x);的结果是()A.OB.1C. ffD.ffff38. 对于while 语句,错误的说法是()• • • A. 用条件控制循环体的执行次数B. 循环体至少要执行一次C. 循坏体有可能一次也不执行D. 循环体中可以包含若干条语句39. 设 int a=9,b=20;则 printf (,'%d,%d,%d\n ,,,a+b,a —的输出结果是() A 、2&9,19 B 、29,9,20 40.执行下列语句int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;} printf("%d,%d,%d\n",a,b,c);后输出的结果是()A.6, 7, 7B.6, 7, 8C.8, 7, 6D.8, 7, 841. 设 static char x[ ]=,,12345,,;char y[ ;那么()A 、 x 数组的长度等于y 数组的长度B 、 x 数组的长度大于y 数组的氏度C 、 x 数组的长度少于y 数组的长度D 、 x 数组与y 数组的存储区域相同42. 设 int i,x[3][3]={l,2,3,4,5,6,7,8,9};则下面语句 A. *p.bC ・ Q.a C.11 C 、28,10,19D 、30,10,20for(i=0;i<3;i++)printfC %d" ,x[i][2-i]); 的输出结果是()A.l 4 7B.l 5 9C.3 5 7D.3 6 943.设 intb[]={l,2,3,4}, y,*p=b;则执行语句y=*p++;之后,变量y 的值为()A.lB.2C.3D.444. 设inta,*p ;则语句p=&a;中的运算符“&”的含义是()A.位与运算B.逻辑与运算C.取指针内容D.取变量地址45. 若函数能被其它编译单位引用,那么函数定义时的存储类型应选用()A.autoB.staticC.externD.register46.下面函数定义有错误的是()• • • A ・fl(xl,x2) int xl,x2; int xl;int x2;{函数体} {函数体}47.C 语言屮计算a?正确的表达是( ){函数体} {函数体}C.fl(int x 1 ,x2)D.fl(int x 1 Jnt x2) A.a A 3 C.a**3 4&下列定义正确的是( A.anum t={a,b}x; C.anum {'+T —'}x; B.pow(a,3)D.power(a,3))B.enum t{l,2}x;um t{a ,b}x;49•设有定义:union u{int a[4];float b[3]};char c[16];}aa;则 printf(/, %d\n" ,sizeof(aa));的输出是()A.32B.16C.12D.850.在下列有关宏替换的叙述中,正确的说法是()A. 宏替换占用运行时间B. 宏名有类型C. 带参数的宏替换和函数等价D. 宏替换只是字符替换51•下列程序的运行结果是()# define A 5# define B A+lmain(){int a; a=B;printf(" %d\n,f a—);}A.6B.5C.4 D•出错52.设有如下定义:struct sk{ int a;float b;{data; int *p;若要使p指向data中的a成员,正确的赋值语句是()A. p=&a; B・ p=data.a; C・ p=&data.a; D. *p=data.a;53.下列四组选项中,均是合法转义字符的选项是()A. 'n‘\\’B. •Mil1‘\017‘C.‘\01& '\f '\x4b, C.'\\0' '\ior '\xaf54.设int x=0,*px;,则经过()后,*px的值为0。

大学C语言复习题_附答案

大学C语言复习题_附答案

判断题1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。

×控制器2.通常硬盘安装在主机箱内,因此它属于主存储器。

×内存3.指令与数据在计算机内是以ASCII码进行存储的。

×二进制4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集合。

√5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过编译才能执行。

√6.计算机的所有计算都是在内存中进行的。

×运算器7.字长是指计算机能直接处理的二进制信息的位数。

√8.计算机区别于其他计算工具的本质特点是能存储数据和程序。

√9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。

×买的也可以10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、大写英文字母。

×大写小写11.多台计算机相连,就形成了一个网络系统。

×什么叫网络系统哦?12.在Internet网上,IP地址、E-mail地址都是唯一的。

√13.不同类型的变量在内存中占用存储空间的大小都是一样的。

×错了14.表示数学式3<x<5的C表达式也是3<x<5。

×3<x&&x<515.设某字符的ASCII码十进制值为72,则其十六进制值为48。

√16.结构化程序语言的三种基本结构是顺序、选择和循环。

√17.‘\n’不是一个字符常量。

×是的18.与float型数据相比,double型数据的精度高,取值范围大。

√19.在C语言中,表达式(010+2)的值是10。

√20.do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。

√21.在C 语言中,常量和变量都有数据类型。

√22. C 语言的运算符只有单目运算符和双目运算符两种。

×三目?:23.若变量已正确定义,表达式x + y == z符合C语言语法。

C语言复习题

C语言复习题
A)int a[2][3]={0}; B)int a[ ][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{2,4},{5,6}}; D)int a[ ][3]={1,2,3,4,5,6}; 5、若调用一个函数,且此函数中没有return语句,则正确的说
D 法是该函数_________。
{ printf("**********");}
三、读程序写结果: 2、以下程序的运行结果是: main( ) { int x=1, y=2; ————————
10 Squared is 100 ———————— x=1 y=2*sum*1=3
printf (“x=%d y=%d*sum*1=%d\n”, x, y, x+y);
{ int *z;
z=x>y?x:y; return(z); }
1、以下函数调用方式正确的是B A) void printstar() { printf("**********");} main() { int a; a=printstar(); printf("%d",a); } C) main() { int a; printstar(); printf("%d",a); } void printstar() { printf("**********");}
0

4、 C程序的源文件需要经过编译连接 才能生成可执行文件。
2.0 1、若double t; 表达式(t=1,t+4,t++)值为________________。
2、已知int k=2; 则表达式(k<0?++k:--k,k-3)的值为__________。 -2

C语言复习题

C语言复习题

一、填空共17题(共计60分)第1题(2.0分)运行以下程序时,输出结果是【1】long fit(int n){if(n>2)return(fit(n-1)+fit(n-2));else return(3);}main(){printf("%ld\n",fit(4));}第2题(2.0分)以下程序运行后的输出结果是【1】.#include<string.h>void main(){char ch[]="abc",x[3][4];int i;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf("%s",&x[i][i]);printf("\n");}第3题(2.0分)下列程序的输出结果是【1】#include<string.h>main(){char b[30];strcpy(&b[0],"CH");strcpy(&b[1],"DEF");strcpy(&b[2],"ABC");printf("%s\n",b);}第4题(2.0分)运行以下程序时,输出结果是【1】#include<stdio.h>int b;int fun(int a){static int c=2;return((++a)+(++b)+(++c));}void main(){int i,a=1;for(i=0;i<2;i++)printf("%5d",fun(a));}第5题(2.0分)在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】.第6题(2.0分)有以下定义和语句struct date{int day;int month;int year;union{int share1;float share2;}share;}a;则sizeof(a)的值是【1】.第7题(2.0分)以下程序的运行结果是【1】main(){int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};int i;int(*p)[4]=a;printf("a[2][3]=%d\n",i,j,*(*(p+i)+j));}第8题(2.0分)以下程序的运行结果是【1】void swap(int**r,int**s){int*t;t=*r;*r=*s;*s=t;}main(){int a=1,b=2,*p,*q;p=&a;q=&b;swap(&p,&q);printf("%d,%d\n",*p,*q);}第9题(4.0分)以下程序运行时,输出结果的第一行是【1】,第二行是【2】. #include<stdio.h>void f(int*x,int y){*x=y+1;y=*x+2;}main(){int a=2,b=2;f(&a,b);printf("%d\n%d",a,b);}第10题(4.0分)设有以下main函数main(int argc,char*argv[]){while(argc>1){++argv;printf("%s\n",*argv);--argc;}}经过编译、连接后得到可执行文件名为c1.exe,若在系统的命令状态下输入命令行:c1nanjing xiaozhuang college<回车>,则在第一行输出【1】,第三行输出【2】.第11题(4.0分)请填空以使程序完整。

C复习题(全部答案)

C复习题(全部答案)

C复习题(全部答案)一、C++基础、变量、常量部分试题:(一)单选题8.由C++语言编写的代码程序()A.可直接执行(.e某e才可以直接执行)B.是一个源程序C.经过编译即可执行(经过编译链接才可以执行)9.按照C++语言规定的用户标识符命名规则,不能出现在标识符中的是()A.大写字母10.下列选项中,不能用作标识符的是()A._1234_11.以下选项中合法的用户标识符是()A.long(关键字)12.以下不能定义为用户标识符的是()A.Main13.列定义变量的语句错误的是()A.int_int;14.在C++语言中,非法的字符常量是()A.‘\\t’29.以下程序的输出结果是()voidmain(){intk=11;cout<A.k=11,k=12,k=1141.B.k=11,k=13,k=13D.k=11,k=13,k=bC.k=11,k=013,k=0某bB.‘\\017’C.\D.‘\\某aa’B.doubleint_;C.charFor;D.floatUSA;B._0C._intD.izeof(运算符)B._2TetC.3Dma某D.A.datB._1_2C.int_2_D.2_intB.中划线C.数字字符D.下划线D.经过编译解释才能执行不属于C++语言关键字的是()。

A.intB.breakC.whileD.character42.是C++语言提供的合法关键字的是()。

A.FloatB.ignedC.integerD.Char43.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数(二)填空题1.一个C++源程序至少有并且只能有一个main(主)函数。

C 语言期末复习题

C 语言期末复习题

一、简答题1、请问指针有哪些类型?指针的类型,跟他所指向的数据结构有关,基本类型的指针指向基本类型的数据结构。

2、函数式宏定义和函数调有什么不同?(1)函数式宏定义的参数没有类型,预处理器只负责做形式上的替换,而不做参数类型检查,所以传参时要格外小心。

(2)调用真正函数的代码和调用函数式宏定义的代码编译生成的指令不同。

(3)函数式宏定义要注意格式,尤其是括号。

(4)若函数参数为表达式,则普通函数的调用与函数式宏定义的替换过程是不一样的。

(5)函数式宏定义往往会导致较低的代码执行效率。

3、请问指针编程有哪些优点?(1)提高传输速度,又节省大量内存。

(2)可以用来做数据类型转换,比较常用于通讯缓冲区的填充。

(3)可以用在大量分支处理的实例当中。

(4)在数据结构中,链表、树、图等大量的应用都离不开指针。

4、C语言中,变量为什么要先定义后使用?(1)对于编译器处理更方便。

(2)不容易出错。

(3)程序更清晰。

5、二维数组的初始化定义的正确形式有哪些?请举例说明(1)分行赋初值例如:int a[2][3]={ {1,3,4},{2,3,1},{7,9,0} };(2)按顺序初始化例如:int a[2][3]={1,3,4,2,3,1,7,9,0};(3)省略一维长度的赋值例如:int a[][3]={1,3,4,2,3,1,7,9,0};(4)对数组的前几行元素初始化,其他元素自动初始化为0例如:int a[2][3]={ {1},{2,3} };6、while与do while相同点与不同点是什么?(1)while语句是先测试条件再执行语句,条件不符后终止;do while语句是先执行语句再测试条件,条件不符后终止,所以do while循环至少执行一次7、请写出一个C程序的构成(1)C程序是由若干个函数构成的(2)每个函数(包括主函数)的定义分为两个部分:函数说明部分和函数体。

(3)C程序中的语句最后总要有一个“分号(;)”,作为每个语句的结束。

安全员C证复习题与答案

安全员C证复习题与答案

安全员C证复习题与答案1、根据激励原则,下列选项中不是人工作动力的主要来源是 ( ) 。

A、外在压力B、内在动力C、吸引力D、专注力答案:D2、小车变幅的塔机,应设置小车行程限位开关和终端缓冲装置。

限位开关动作后应保证小车停车时其端部距缓冲装置最小距离为 ( ) mm。

A、1000B、100C、500D、200答案:D3、当碗扣式钢管双排脚手架拐角为非直角时,可采用 ( ) 组架。

A、钢管扣件B、竖向斜撑杆C、水平杆D、立杆答案:A4、吊装物吊离地面 ( ) mm时,应进行全面检查,并应确认无误后再正式起吊。

A、250B、150C、350D、100答案:A5、环境安全规则是指 ( ) 对其设置和运行环境安全因素的要求。

主要是指对易燃易爆物、腐蚀介质、机械损伤、电磁感应、静电等因素的防护要求,防止由其引发设备损坏、触电和电气火灾事故。

A、配电线路B、配电装置C、配电系统D、接地装置答案:C6、钢结构安装工程施工时,高空操作必须配戴安全带,穿 ( ) ,并作好安全措施。

A、皮鞋B、绝缘软底鞋C、工装鞋D、运动鞋答案:B7、《建筑施工现场钢管扣件安全管理规定》规定,在建工程用于施工现场模板等扣件式钢管支撑承重支架的钢管壁厚应不小于 ( ) ,且应与方案计算参数一致。

A、2.75mmB、3.50mmC、2.5mmD、3.00mm答案:D8、有限空间作业监护者的职责不包括 ( ) 。

A、接受本单位职业卫生培训,持证上岗B、与作业者进行必要有效的安全、报警、撤离等信息沟通C、检查、验证应急救援服务、呼叫方法的效果D、在作业者作业期间保证在密闭空间外持续监护答案:A9、基坑工程由施工总承包单位实施的,基坑工程施工方案应由该总承包单位编制, ( ) 审核、签字并加盖单位公章。

A、总承包单位技术负责人B、施工单位技术负责人C、总监理工程师D、分包单位技术负责人答案:B10、装配整体式混凝土结构中特殊结构或必要的外墙板构件安装可选用( ) 作为安全防护。

【期末复习】C 期末复习题及答案

【期末复习】C  期末复习题及答案

优选教育资源共赢共享共进1. 下列语句中错误的是( D)A. int *p=new int(10) ;B. int *p=new int[10] ;C. int *p=new int ;D. int *p=new int[40](0)2. 假设已经有定义char *const name=”chen” ;下面的语句中正确的是( A)A. name[3]=’q’;B. name=”lin”;C. name=new char[5]D. name=new c har(‘q’);3. 下面的类型声明中正确的是(D )A. int &a[4]B. int &*p ;C. int &&q ;D. int I,*p=& I ;4. 在声明类时,下面的说法正确的是( C)A.可以在类的声明中给数据成员赋值B. 数据成员的数据类型可以是registerC. private、public、protected可以按任意顺序出现D. 没有用private、public、protected定义的数据成员是公有成员5. 构造函数是在(B )时被执行的。

A.程序编译B. 创建对象C. 创建类D.程序装入内存6. 在下面有关友元函数的描述中,正确的说法是(A )A. 友元函数是独立于当前类的外部函数B.一个友元函数不能同时定义为两个类的有友元函数C.友元函数必须在类的外部定义D.在外部定义友元函数时,必须加关键字friend7. 使用派生类的主要作用是(A )A.提高代码的可重用性B.提高程序的运行效率C.加强类的封装性D.实现数据的隐藏8. 关于虚函数,正确的描述是(A )A.构造函数不能是虚函数B.析构函数不能是虚函数C.虚函数可以是友元函数D.虚函数可以是静态成员函数9. 如果在基类中将成员函数show声明为不带返回值得纯虚函数,正确的写法是(C )A.virtual show( )=0;B.virtual void show( )C.virtual void show( )=0;D.void show( )=0 virtual;10. 使用myFile.open(“sales.dat”,ios::app)语句打开文件sales.dat后,则(A )A.该文件只能用于输出B.该文件只能用于输入C.该文件既能用于输出,又能用于输入D.若该文件存在,则清除该文件的内容二、分析下列程序中的错误,并说明原因(前2题每题6分,第三题8分,共20分)1.#include"iostream.h"class student{char name[10];int age;float aver;void printStu( ){} };void main( ){student p1,p2,p3;p1.age=16;//…}2. #include"iostream.h" class stack{public:stack(int sz); private:char *p;int size;};stack::stack(int sz) {p=new char[size=sz];}void main(){stack stt;//...}3. #include"iostream.h"class CTest{public:const int y2;CTest(int i1,int i2):y1(i1),y2(i2) {y1=10;x=y1;}int readme()const;//...private:int x;const int y1;};int CTest::readme()const{int i;i=x;x++;return x;} {CTest c(2,8);int i=c.y2;i=c.y1;}三、写出下列程序的运行结果(前2题每题6分,第三题8分,共20分)1.#include"iostream.h"class toy{public:toy(int q,int p){ quan=q; price=p;}int get_quan(){return quan;}int get_price(){return price;}private:int quan,price;};int main(){toyop[2][2]={toy(10,20),toy(30,48),toy(50,68),toy( 70,80)};int i;for(i=0;i<2;i++){cout<<op[i][0].get_quan()<<",";cout<<op[i][0].get_price()<<"\n";cout<<op[i][1].get_price()<<"\n"; }cout<<"\n";return 0;}2.#include"iostream.h"class Stock{public:void print(){cout<<"Stock class.\n";}};class Der1_Stock:public Stock{public:void print(){cout<<"Deri1_Stock class.\n";} };class Der2_Stock:public Stock{public:void print(){cout<<"Deri2_Stock class.\n";} };void main(){Stock s1;Stock *ptr;Der1_Stock d1; ptr=&s1;ptr->print();ptr=&d1;ptr->print();ptr=&d2;ptr->print();}3.#include"iostream.h" class A{public:A(int i):xi(i){}A(){xi=0;}friend A operator++(A a); friend A operator--(A &a); void print();private:int xi;};A operator++(A a){++a.xi;return a;}A operator--(A &a){--a.xi;return a;}void A::print()void main(){A i(7);++i;i.print();--i;i.print();}二 1.答案:p1.age=16; 有错(3分),因为age是私有数据成员,不能直接访问(3分)2. 答案:stack stt; 有错,(3分)类中没有定义无参构造函数(3分)3. 答案:错误1:y1=10;有错(2分),y1是常成员,不能修改(1分)错误2:x++;有错(2分),readme函数是常成员函数,不能修改对象的数据成员(1分)错误3:i=c.y1;有错(1分),y1是私有变量,不能直接存取(1分)三 1.答案:10,20;30,48;50,6870,80 2.答案:Stock class.Stock class.Stock class.3.答案:76B卷一、选择题(每题2分,共20分,答案填写在题后的表格内)1. 假设已经有定义const char *const name=”chen” ;下面的语句中正确的是(D )A. name[3]=’a’;B. name=”lin”;C. name=new char[5]D. cout<<name[3];2. 假设已经有定义const char * name=”chen” ;下面的语句中错误的是( A)A. name[3]=’q’;B. name=”lin”;C. name=new char[5]D. name=new char(‘q’);3. 在下面有关对构造函数的描述中,正确的是(B )A.构造函数可以带有返回值B. 构造函数的名字与类名完全相同C. 构造函数必须带有参数D. 构造函数必须定义,不能缺省4. 在下面有关析构函数特征的描述中,正确的是(C )A. 一个类可以定义多个析构函数B.析构函数名与类名完全相同C. 析构函数不能指定返回类型D.析构函数可以有一个或多个参数5. 在下面有关静态成员函数的描述中,正确的是( B)A. 在静态成员函数中可以使用this指针B.在建立对象前,就可以为静态数据成员赋值C. 静态成员函数在类外定义时,要用static前缀D. 静态成员函数只能在类外定义6. 友元的作用之一是( A)A. 提高程序的运行效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类A.class derived::student privateB. class derived:student publicC.class derived:private student{//… }D.class derived::public student{//… }8. 要实现动态联编,派生类中的虚函数(D )A.返回的类型可以与虚函数的原型不同B.参数个数可以与虚函数的原型不同C.参数类型可以与虚函数的原型不同D.以上都不对9. 有关运算符重载正确的描述是(D )A.C++语言允许在重载运算符时改变运算符的操作个数B. C++语言允许在重载运算符时改变运算符的优先级C. C++语言允许在重载运算符时改变运算符的结合性D. C++语言允许在重载运算符时改变运算符的原来的功能10. 假设定义了函数模板:template<class T>T max(T x,T y){ return (x>y)?x:y; }并定义了int i=6; char c=’a’; 错误的调用语句是( D)A. max( i,i)B. max(c,c)C.max((int )c,i)D.max(i,c)二、分析下列程序中的错误,并说明原因(前2题每题6分,第三题8分,共20分)1. #include"iostream.h"class point{public:int x,y;private:point( ){x=1;y=2;}};void main( ){point cpoint;cpoint.x=2;}2. #include"iostream.h"template<class T>class Stack{public:Stack(int sz){delete []v;}void push(T x){*p++=x;}T pop(){return *--p;}int lenth()const{return (p-v);}private:T *v,*p;int size;};void main(){Stack obj(5);obj.push(10);}3.#include"iostream.h"class student{int sno;int age;void printStu( );void setSno(int d);};void printStu( ){cout<<”\nStudent No.is “<<sno<<”,”; cout<<”age is”<<age<<”.”<<endl; } void setSno(int d){sno=d;}void setAge(int a){age=a;}void main( ){student lin;lin.setSno(20**1);lin.setAge(20);三、写出下列程序的运行结果(前2题每题6分,第三题8分,共20分)1.#include"iostream.h"class b1{public:b1(int ii){i=ii;}void display(){cout<<i<<endl;}protected:int i;};class b2{public:b2(int jj){j=jj;}void display(){ cout<<j<<endl;}protected:int j;};class b3:public b1,public b2{public:b3(int ii,int jj,int kk):b1(ii),b2(jj){k=kk;}void setall(int ii,int jj,int kk){i=ii;j=jj;k=kk;}void display(){cout<<i<<endl;cout<<j<<endl;cout<<k<<endl;}private:int k;};o1.display();b2 o2(50);o2.display();b3 o3(10,20,30);o3.display();o3.setall(50,60,70);o3.display();}2.#include"iostream.h"class Stock{public:virtual void print(){cout<<"Stock class.\n";}};class Der1_Stock:public Stock {public:void print(){cout<<"Deri1_Stock class.\n";}}; class Der2_Stock:public Stock {public:void print(){cout<<"Deri2_Stock class.\n";}}; void main(){Stock s1;Stock *ptr;Der1_Stock d1;Der2_Stock d2;ptr=&s1;ptr->print();ptr=&d1;ptr->print();3.#include<iostream.h>const int size=10;template<class Type> //声明一个类模板class stack{ public:void init(){ tos=0; }void push(Type ch); //参数取Type类型Type pop(); //返回类型取Type类型private:Type stck[size]; //数组的类型为类型参数Type,即可取任意类型 int tos;};template <class Type>void stack<Type>::push(Type ob){ if (tos==size){ cout<<"stack is full"; return ; }stck[tos]=ob; tos++; }template <class Type>Type stack <Type>::pop(){ if (tos==0){ cout<<"stack is empty";return 0;}tos--;return stck[tos];}int main(){ //定义字符堆栈stack <char> s1,s2; //创建两个模板参数为char型的对象int i;s1.init(); s2.init();s1.push('a'); s2.push('x');s1.push('c'); s2.push('z');for(i=0;i<3;i++) cout<<"pop s1: "<<s1.pop()<<endl;for(i=0;i<3;i++) cout<<"pop s2: "<<s2.pop()<<endl;return 0;}二、分析下列程序中的错误,并说明原因(前2题每题6分,第三题8分,共20分)1.答案:point cpoint;是错误的(3分),因为构造函数是私有成员(3分)2. 答案:Stack obj(5); 有错(3分),因为Stack是类模板,应将模板实例化,才可定义对象(3分)3.答案:错误1:printStu、setSno两个成员函数不是公有成员,不允许在类外访问(4分)错误2:成员函数在类外定义,应加上类名“student::”(2分)错误3:setAge函数应在类中说明(2分)三、写出下列程序的运行结果(前2题每题6分,第三题8分,共20分)1.答案:40 50 10 20 30 50 60 702.答案:Stock class.Deri1_Stock class.Deri2_Stock class.3.答案:pop s1:cpop s1:bpop s1:apop s2:zpop s2:ypop s2:xA 卷一、单项选择题:(每小题2分,共20分)1、假设已经有定义const char *name=”chen”;下列语句中错误的是_____________A. name[3]=’q’B. name=”lin”C. name=new char[5]D. name=new char(‘q’)2、在下列关键字中,用于说明类中公有成员的是____________A. publicB. privateC. protectedD. friend3、下列哪项不是面向对象程序设计的主要特征_______________。

安全员C证复习题含答案

安全员C证复习题含答案

安全员C证复习题含答案一、单选题(共30题,每题1分,共30分)1、玻璃幕墙施工中安装横梁时,相邻两根横梁水平标高偏差不应大于( ) mm。

A、2B、2.5C、1.5D、1.0正确答案:D2、塔式起重机和220kV输电线路之间的安全距离,垂直方向需达到至少 ( ) m。

A、6B、3C、4D、5正确答案:A3、配电箱、开关箱内电器安装,电器至板边最小净距为 ( ) mm。

A、40B、20C、50D、30正确答案:A4、对于承插型轮扣式模板支架,可调托撑上的主楞梁应居中,其间隙每边不大于 ( ) mm。

A、4B、3C、2D、1正确答案:C5、根据《生产安全事故档案管理办法》规定,负责事故处理的部门在事故处理结束后 ( ) 日内向本单位档案部门移交事故档案。

A、10B、15C、20正确答案:D6、临时宿舍、办公用房的建筑层数不应超过 ( ) 层,每层建筑面积不应大于 ( ) 平方米,建筑构件的燃烧性能等级应为A级,严禁使用泡沫夹芯彩钢板。

A、2200B、2300C、3200D、3300正确答案:D7、下限位器应在吊钩不能再下降或卷筒上钢丝绳只剩 ( ) 圈时应能立即停止下降运动。

A、2B、0C、3D、1正确答案:D8、交叉作业时,上层作业高度15m<hb≤30m时,坠落半径为 ( ) m。

A、3B、4C、6D、5正确答案:C9、超过一定规模的危险性较大的分部分项工程,实行施工总承包的,应当由 ( ) 组织召开专家论证会。

A、监理单位B、设计单位C、施工总承包D、建设单位正确答案:C10、石材幕墙施工预埋件安装时如有预埋件位置超差而无法使用或漏放时,应根据实际情况提出选用膨胀螺栓的方案,并必须报设计单位审核批准,且应在现场做 ( ) 试验,做好记录。

A、拉拔C、抗剪D、抗弯正确答案:B11、建筑危险等级系数的选用与现行国家标准《建筑结构可靠度设计统一标准》GB50068 ( ) 系数相协调。

A、安全性B、可靠性C、有效性D、重要性正确答案:A12、《立法法》第九十二条规定,同一机关制定的法律、行政法规、地方性法规、自治条例和单行条例、规章,特别规定与一般规定不一致的,适用 ( ) 。

c语言复习试题及答案

c语言复习试题及答案

c语言复习试题及答案C语言复习试题及答案一、选择题1. C语言中,一个整型变量的取值范围是:A. -128 到 127B. -32768 到 32767C. -2147483648 到 2147483647D. 取决于编译器答案:D2. 下列哪个关键字用于定义C语言的结构体?A. structB. defineC. unionD. enum答案:A3. C语言中,字符串在内存中是以什么方式存储的?A. 字符串名B. 字符串长度C. 字符串本身D. 字符串结束标志 '\0'答案:D4. 在C语言中,函数返回值的类型由什么决定?A. return 语句B. 函数名C. 函数定义时指定的类型D. 函数参数的类型答案:C5. 下列哪个操作符不能用于位操作?A. &B. |C. ^D. ++答案:D二、填空题6. C语言中,预处理器指令 `#include` 的作用是_______。

答案:引入其他文件7. `int main()` 函数中的 `void` 表示该函数_______。

答案:不返回任何值8. 在C语言中,数组的索引是从_______开始的。

答案:09. `printf` 函数的返回类型是_______。

答案:int10. 表达式 `3.0 / 0` 在C语言中会导致_______。

答案:运行时错误三、简答题11. 请简述C语言中指针的概念及其用途。

答案:指针是一种变量,它存储的是另一个变量的内存地址。

指针在C语言中用于直接访问内存、动态内存分配、数组操作、函数参数传递等。

12. 解释C语言中数组和指针之间的关系。

答案:在C语言中,数组名可以作为指针使用,它指向数组的第一个元素的地址。

通过指针可以遍历数组,也可以通过指针修改数组元素的值。

四、编程题13. 编写一个C语言程序,实现对整数数组的排序。

```c#include <stdio.h>void sort(int arr[], int n) {int i, j, temp, min_idx;for (i = 0; i < n - 1; i++) {min_idx = i;for (j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}if (min_idx != i) {temp = arr[i];arr[i] = arr[min_idx];arr[min_idx] = temp;}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);sort(arr, n);printf("Sorted array: \n");for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```14. 编写一个C语言程序,实现字符串的反转。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.单选题(1) 以下有4组用户标识符,其中合法的一组是A) for B) 4d C) f2_G3 D) WO-RD(2) 以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D(3) 假定x和y为double型,x=2, 则表达式y=x+3/2的值是A) 3.500000 B) 3 C) 2.000000 D) 3.000000(4) 设x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是printf("%d,%d\n",x--,--y);A) 10,3 B) 9,3 C) 9,2 D)10,2(5) 以下程序的输出结果是main( ){ int a=3;printf("%d\n",(a+=a - =a*a) );}A) -6 B)12 C) 0 D) -12(6) 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为A) 0 B) 1 C)2 D) 3(7) 阅读以下程序:main( ){int x;scanf("%d",&x);if(x--<5) printf("%d",x);else printf("%d",x++);}程序运行后,如果从键盘上输入5,则输出结果是A)3 B) 4 C) 5 D) 6(8) t为int类型,进人下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是A) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对(9) 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A) 地址传递B) 单向值传递C) 双向值传递D) 传递方式由用户指定(10) 以下函数值的类型是fun ( float x ){float y;y= 3*x-4;return y;}A) int B) 不确定C) void D) float(11) 以下程序的输出结果是main( ){char c='z';printf("%c",c-25);}A) a B) Z C) z-25 D) y(12) 若有说明:int i, j=2,*p=&j;,则能完成i=j赋值功能的语句是A) i=*p; B) p*=*&j; C) i=&j; D) i=**p;(13) 以下定义语句中,错误的是A) int a[ ]={1,2}; B) char * a[3];C) char s[10]="test"; D) int n=5, a[n];(14) 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A) 3 B) 6 C) 10 D) 20(15) 以下程序的输出结果是main( ){int i, a[10];for( i=9; i>=0; i- -) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A) 258 B) 741 C) 852 D) 369(16) 以下数组定义中不正确的是A) int a[2][3];B) int b[ ][3]={0,1,2,3};C) int c[100][100]={0};D) int d[3][ ]={{1,2},{1,2,3},{1,2,3,4}};(17) 以下程序的输出结果是main( ){int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0] );}A) 0650 B) 1470 C) 5430 D) 输出值不定(18) 以下程序的输出结果是main( ){char st[20]= "hello\0\thg";printf(%d %d \n",strlen(st), sizeof(st));}A) 9 9 B) 5 20 C) 13 20 D) 20 20(19) 以下选项中,不能正确赋值的是A) char s1[10]; s1="Ctest";B) char s2[ ]={'C', 't', 'e', 's', 't'};C) char s3[20]="Ctest";D) char *s4="Ctest\n"(20) 以下程序的输出结果是struct HAR{ int x, y; struct HAR *p; } h[2];main( ){h[0].x=1; h[0].y=2;h[1].x=3; h[1].y=4;h[0].p=&h[1]; h[1].p=h;printf("%d %d \n", h[0].p->x, h[1].p->y);}A) 1 2 B) 2 3 C) 1 4 D) 3 2(21) 以下程序的输出结果是main( ){int a, b;for(a=1, b=1; a<=100; a++){if(b>=10) break;if (b%3= =1){ b+=3; continue; }}printf("%d\n",a);}A) 101 B) 6 C) 5 D) 4(22) 以下程序的输出结果是union myun{struct{ int x, y, z; } u;int k;} a;main( ){a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf("%d\n", a.u.x );}A) 4 B) 5 C) 6 D) 0(23) 以下程序的输出结果是int a, b;void fun( ){ a=100; b=200; }main( ){int a=5, b=7;fun( );printf("%d %d \n", a,b);}A) 100 200 B) 5 7 C) 200 100 D) 7 5(24) 以下程序的输出结果是#define M(x,y,z) x*y+z //带参宏定义main( ){int a=1, b=2, c=3;printf("%d\n", M(a+b,b+c, c+a));}A) 19 B) 17 C) 15 D) 12(25) 下面的程序执行后,文件test.t中的内容是#include<stdio.h>void fun(char *fname,char *st ){FILE *myf;myf=fopen(fname,"w" );fputs(st, myf);fclose(myf);}main( ){fun("test","new world!");fun("test","hello!")}A)hello! B)new world!hello! C)new world! D)hello!rld!二、填空题(1) 语句:x++; ++x; x=x+1; x=1+x; 执行后都使变量x的值增1,请写出一条同一功能的赋值语句( )。

(2) 以下程序运行后的输出结果是( )。

void main( ){int i=10, j=0;do { j=j+i; i--; }while(i-->2);printf("%d\n", j);}(3) 设有以下程序:void main( ){int n1,n2;scanf("%d",&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf("%d",n1);}}程序运行后,如果从键盘上输入1298;则输出结果为( )。

(4) 以下程序输出的最后一个值是( )。

int ff(int n){static int f;f=f+n;return f;}void main( ){int i;for(i=1; i<=5; i++) printf("%d\n",ff( i ) );}(5) 以下函数的功能是:求x的y次方,请填空。

double fun( double x, int y){int i;double z;for(i=1, z=x; ____; i++)_____;return z;}(6) 设有以下程序:void main( ){int a, b, k=4, m=6, *p1=&k, *p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n", a);printf("b=%d\n", b);}执行该程序后,a的值为( ),b的值为( )。

(7) 若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a 数组10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。

请填空。

fun( int a[ ] ){int i;for(i=1; i<=10; i++) _____=i;for(i=0; i<5; i++)_____=a[i];}(8) 若有定义语句:char s[100], d[100]; int i=0; ,且s中已赋字符串,请填空以实现字符串拷贝。

(注:不得使用逗号表达式)while(s[i]){ d[i]=____; i++; }d[i]=’\0’;(9) 以下程序段用于构成一个简单的单向链表,请填空。

struct STRU{int x, y ;float rate;___________ p;} a, b;a.x=0; a.y=0; a.rate=0; a.p=&b;b.x=0; b.y=0; b.rate=0; b.p=NULL;(10) 若有如下结构体说明:struct STRU{int a, b ; char c; double d:struct STRU p1,p2;};___________t[20];请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型.三、改错题注意:在/*********found**********/ 下一行改,不得增行或删行,也不得更改程序的结构!1.给定函数fun的功能是: 先从键盘上输入一个3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。

相关文档
最新文档