C程序设计题库
- 格式:doc
- 大小:83.00 KB
- 文档页数:6
第五章函数5.1 选择题1. C语言是由()构成。
A. 主程序和子程序B. 主函数和若干子函数C. 一个主函数和一个其他函数D. 主函数和子程序2.以下说法中正确的是()。
A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3.以下对C语言函数的有关描述中,正确的是()。
A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B. C函数既可以嵌套定义又可以递归调用C. 函数必须有返回值,否则不能使用函数D. C程序中有调用关系的所有函数必须放在同一个源程序文件中4. C语言程序中,当函数调用时()。
A. 实参和形参各占一个独立的存储单元B. 实参和形参共用一个存储单元C. 可以由用户指定是否共用存储单元D. 计算机系统自动确定是否共用存储单元5.关于return语句,下列正确的说法是()。
A. 在主函数和其他函数中均要出现B. 必须在每个函数中出现C. 可以在同一个函数中出现多次D. 只能在除主函数之外的函数中出现一次6.一个函数返回值的类型是由()决定的。
A. return语句中表达式的类型B. 在调用函数时临时指定C. 定义函数时指定的函数类型D. 调用该函数的主调函数的类型7.在C语言的函数中,下列正确的说法是()。
A. 必须有形参B. 形参必须是变量名C. 可以有也可以没有形参D. 数组名不能作形参·2·C语言程序设计之上机指导及同步训练8.以下描述正确的是()。
A. 函数调用可以出现在执行语句或表达式中B. 函数调用不能作为一个函数的实参C. 函数调用可以作为一个函数的形参D. 以上都不正确9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。
A. 地址传递B. 单向值传递C. 由实参传给形参,再由形参传回实参D. 传递方式由用户指定10.当调用函数时,实参是一个数组名,则向函数传送的是()。
福建师范大学C语言程序设计考试题系别 _______ 班级 _______ 姓名_________ 学号________ 得分__________一、选择题(本大题共40个选项,每个选择项1.5分,共60分)1.在C语言中,合法的字符常数是【1】A)‘程序设计’ B)“程序设计”C)c D)‘\\’2.在C语言中,以下不正确的八进制或不正确的十六进制数是【2】A)090 B)0xABC)0xla D)-0163.执行int x=2,y=3;后表达式x=(y==3)的值是【3】A)0 B)1C)2 D)34.执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是【4】A) 3 B) 4C) 7 D) 115.在循环结构的循环体中执行break语句,其作用是【5】A) 结束本次循环,进行下次循环B) 继续执行break语句之后的循环体中各语句C) 跳出该循环体,提前结束循环D) 终止程序运行【6】main(){char s[]=”\’Address\’”;printf(%d\n”, strlen(s));}A) 9 B) 10C) 11 D) 12【7】main(){int a[]={2, 4, 6, 8, 10}, y=1, x;for(x=0; x<3; x++) y+=a[x+1];printf(“%d\n”, y);}A) 17 B) 18C) 19 D) 208.已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是【8】A) x[8]=”Turbo C”; B) x=”Turbo C”;C) x[]=”Turbo C”; D) for(i=0; i<7; i++) x[i]=getchar();9.设int a[][4]={0, 0};则以下错误的描述是【9】A) 数组a的每个元素都可得到初值0B) 二维数组a的第一维大小为1C) 数组a的行数为1D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0 【10】fun3(int x){static int a=3;a+=x;return a;}main(){int k=2, m=1, n;n=fun3(k);n=fun3(m);printf(“%d\n”, n);}A) 3 B) 4C) 6 D) 911.以下四个运算符,按优先级由高到低的排列顺序是【11】A) ++ % += > B) % ++ > +=C) % += > ++ D) ++ % > +=【12】A) 在函数外部定义的变量是全局变量B) 在函数内部定义的变量是局部变量C) 函数的形参是局部变量D) 局部变量不能与全局变量同名13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为【13】A) 直接按系统设定的标准方式搜索目录B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索C) 仅仅搜索源程序所在的目录D) 仅仅搜索当前目录14.设有语句int(*p)();则p是一个【14】A) 指向一维整型数组的指针变量B) 指针函数,该函数的返回值为指向整型变量的指针C) 指向函数的指针变量,该函数的返回值为整型D) 数组指针,它的每个元素都是一个可以指向整型变量的指针变量15.若有typedef float AR[5];AR a;则以下叙述正确的是【15】A) a是一个新类型名B) AR是一个实型数组C) AR是一个实型变量D) a是一个实型数组【16】A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型C)整型、字符型、逻辑型D)整型、实型、字符型17.在C语言中,变量所分配的内存空间大小【17】A)均为一个字节 B)由用户自己定义C)由变量的类型决定 D)是任意的18.在C语言中,合法的整型常数是【18】A)-0x123 B)3.14159 C19.下列各变量均为整型,选项中不正确的C语言赋值语句是【19】A)i+=++i; B)i=j==k;C)i=j+=i; D)i=j+1=k;≤y≤z可用C语言的表达式表示为【20】A)(x<=y)&&(y<=z) B)(x<=y)and(y<=z)C)(x<=y<=z) D)(x<=y)&(y<z)21.若定义float a;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用【21】A)scanf(“%6f”,&a); B)scanf(“%”,a);C)scanf(“%”,&a); D)scanf(“%f”,a);【22】unsigned a=0356,b;b=~a|a<<2+1;printf(“%x\n”,b);A)ffba B)ff71 C)fff8 D)fc0223.要使以下程序的输出结果为4,则a和b应满足的条件是【23】main(){int s,t,a,b;scanf(“%d%d”,&a,&b);s=t=1;if(a>0) s += 1;if(a>b) t= s + t;elseif(a==b) t=5;else t=2*s;printf(“%d\n”,t);}A)a>0并且a<b B)a<0并且a<bC)a>0并且a>b D)a<0并且a<b24.若int i;则以下循环语句的循环执行次数是【24】for (i=2;i==0;) printf(“%d”,i--);A)无限次 B)0次C)1次 D)2次【25】main(){int i;for(i=100;i<200;i++){if(i%5==0) continue;printf(“%d\n”,i);break;}}A)100 B)101C)无限循环 D)无输出结果【26】int i=1,a[]={1,5,10,9,13,7};while(a[i]<=10) a[i++]+=2;for (i=0;i<6;i++) printf(“%d”,a[i]);A)2 7 12 11 13 9 B)1 7 12 11 13 7C)1 7 12 11 13 9 D)1 7 12 9 13 7“abcde”赋初值给字符数组,不正确的语句是【27】A)char s[]=“abcde”; B)char s[]={’a’, ’b’,’c’,’d’,’e’,’\0’};C)char s[]={“abcde”}; D)char s[5]= “abcde”;28.若变量c为char类型,能正确判断出c为小写字母的表达式是【28】A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z')【29】void fun(int *x, int *y){ printf("%d %d", *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2【30】main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2331.当执行下面的程序时,如果输入ABC,则输出结果是【31】main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789"); printf("%s\n",ss);}A) ABC6789 B) ABC67 C【32】A) int a[2][3]={0}; B) int a[][3]={1,2,3,4,5};C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[2][3]={{1},{3,4,5}};33.若int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是【33】A) 2 B) 3 C) 4 D)无确定值34.下面程序段的运行结果是【34】int a[2][3]={1,2,3},i,j;for(i=0;i<2;i++)for(j=0;j<3;j++){a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];printf(“%d,”,a[i][j]);}A) 2,4,6,2,0,8, B) 1,2,3,0,0,0,C) 1,2,3,2,0,6, D) 2,4,6,2,0,6,35.下面程序段的运行结果是【35】int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,a[2][1]);A) 2 B) 4 C) 7 D)836.定义一个结构体变量时,系统分配给它的内存大小是【36】A)各成员所需内存量的总和B)成员中占内存量最大者所需内存容量C)结构中第一个成员所需内存容量D)结构中最后一个成员所需内存容量37.若typedef char STRING[255];STRING s;,则s是【37】A)字符指针数组变量B)字符数组变量C)字符变量D)字符指针变量38.若已定义:int *p,a;,则语句p=&a;中的运算符“&”的含义是【38】A) 位与运算B) 逻辑与运算C) 取指针内容D)取变量地址39.若有定义char *p,ch;则不能正确赋值的语句组是【39】A)p=&ch;scanf(“%c”,p);B)p=(char *)malloc(1); *p=getchar();C)*p=getchar();p=&ch;D)p=&ch;*p=getchar();40.下面程序段的运行结果是【40】char s[]=“ABC”;int i;for(i=0;i<3;i++) printf(“%s”,&s[i]);A) ABC B) ABCABCABC C) AABABC D)ABCBCC1.下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数0.5 C) 2L D) '\72'3.下列选项中,合法的C语言关键字是A) V AR B) cher C) integer D) default4.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4 C) 3 D) 15.下面程序段的运行结果是【5】float y=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;int i;p=&a[1];fo r(i=0;i<3;i++) y+=*(p+i);printf(“%f\n”,y);A) 12.0000 B) 28.0000 C) 20.0000 D) 18.00006.下面程序段的运行结果是【6】char c[]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s\n”,c);A) ab c B) ‘a’‘b’C) abc D) ab7.下面程序段的运行结果是【7】char s[10],*sp=“HELLO”;strcpy(s,sp);s[0]=‘h’;s[6]=‘!’;puts(s);A) hELLO B) HELLO C) hHELLO! D) h!8.若有定义int a[3][5],i,j;(且0≤i<3,0≤j<5),则a[i][j]的地址不正确表示是【8】A) &a[i][j] B) a[i]+jC) *(a+i)+j D) *(*(a+i)+j)9.若有定义int *p[4];,则标识符p是一个【9】A) 变量的指针变量B) 指向函数的指针变量C) 指向有四个整数元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针10.若有定义char *language[]={“FORTRAN”, “BASIC”,“PASCAL”,“JA V A”, “C”};则language[2]的值是【10】A) 一个字符B) 一个地址C) 一个字符串D) 不确定11.C语言规定,函数返回值的类型由【11】所决定。
【章节】第1章 C++基础知识【知识点】1、 C++程序的构成与书写形式;2、基本数据类型,常量、变量和表达式3、 C++的标准输入输出【单选题】1、在C++中,源程序变为可执行程序的正确顺序应该是( ) 。
A. 编辑、链接、编译、执行B. 编辑、编译、链接、执行C. 编译、编辑、链接、执行D. 编译、链接、编辑、执行答案:B2、要把高级语言编写的源程序转换为目标程序,需要使用( ) 。
A. 编辑程序B. 驱动程序C. 调试程序D. 编译程序答案:D3、下列关于C++与C语言的关系描述中,错误的是( ) 。
A. C语言是C++语言的一个子集B. C++与C语言是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的答案:D4、下面为使用面向对象语言的正确理由是( ) 。
A. 面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构B. 程序语句比面向过程语言简单C. 面向对象程序设计可以设计为自行修改错误D. 面向对象程序很容易概念化答案:D5、以下选项中,合法的用户标识符是( ) 。
A. longB. _2TestC. 3DmaxD. A.dat答案:B6、下列描述中正确的是( ) 。
A. 不是每个C++程序都必须包含预处理命令#includeB. C++程序必须有return 语句C. C++程序中的变量必须定义在主程序内部D. C++程序中所使用的符号常量可以不进行定义答案:A7、C++源程序文件的扩展名为( ) 。
B. .CC. .DLLD. .EXE答案:A8、cout是I0流库预定义的( ) 。
A. 类B. 对象C. 包含文件D. 常量答案:B9、 C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) 。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D10、下列选项中,( ) 是不合法的标识符.A. ProgramB. Obj23C. doubleD. B_C_D答案:C11、下列标识符中,不合法的用户标识符为( ) 。
(完整版)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中。
一、单项选择题(每小题2分,共50分)1、一个C程序的执行是从___A__.A、本程序的main函数开始,到main函数结束B、本程序的main函数开始,到本程序文件的最后一个函数结束C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束2、C语言程序的基本单位是___C___。
A、程序行B、语句C、函数D、字符3、请选出可用作C语言用户标识符的一组标识符___B___。
A、voidB、a3_b3C、ForD、2adefine _123 —abc DOWORD IF ase sizeof4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是__C__ 。
A、4。
500000B、4C、4.000000D、2.0000005、下列可以正确表示字符型常量的是___D__。
A、297B、”a"C、”\n”D、'\t'6、在C语言中,要求运算数必须是整型的运算符是__D__。
A、/B、++C、*=D、%7、C语言中,复合语句的构成是将一系列语句置于__C__。
A、begin与end之间B、方框号“[ ]”之间C、花括号“{}"之间D、圆括号“()”之间8、有如下程序段,对应正确的数据输入是___A___。
float x,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”, x,y);A、2.04<回车>B、2.04,5。
67<回车>5.67〈回车>C、A=2。
04,B=5.67<回车〉D、2。
045。
67〈回车>9、以下程序段的输出结果是___D__。
int a=5678;printf(”%2d\n”, a);A、提示出错、无结果B、56C、78D、567810、已知:char ch=’A';则下列表达式的值是__B__。
第1次客观题作业一、单选题(共30题,每题3分)1 .下面表示正确的是__A___。
A.C语言中的逗号是一种运算符B.在C语言中,一行只能有一个语句C.C中的变量不区分大小写D.c中的关键字可以做为变量名2 .字符型常量在内存中存放的是__A____代码值。
A.ASCII B.二进制C.十进制D.八进制3 .以下不正确的C语言标识符是(C )。
A.AB1 B._ab3 C.4ab D.a2_b4 .以下运算符中优先级最低的运算符是_D____。
A.&& B.& C.|| D.=5 .在C语言中,要求运算数必须是整型的运算符是___A___。
A.% B./ C.< D.!6 . C语言程序的基本单位是__C_____。
A.程序行B.语句C.函数D.字符7 .将高级语言编写的程序翻译成目标程序的是___B____程序。
A.解释程序B.编译程序C.汇编程序D.源程序8 .以下选项中,与k=n++完全等价的表达式是__A___。
A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+19 .下列(A )不属于结构化程序设计的循环结构。
A.For B.While C.if-else D.do-while10 .以下叙述中错误的是__A___。
A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识11 .若有输入语句scanf( %d%d%d,&x,&y,&z);则不能使x值为5,y值为6,z值为7的输入是__A____。
A.5,6 ,7 B.5回车换行 6 7 C.5 6 7 D.5,6,712 .若i,j已定义为int类型,则下程序段中内循环体的总的执行次数是( B )。
for (i=3;i>0;i--) for (j=0;j<=4;j++){...}A.12 B.15 C.16 D.2013 .下列选项中,合法的C语言关键字是_D___。
《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由()组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是()。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “------------“) ;的正确说法是()。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出-----------4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为()。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是()。
A.’A’B.’D’的ASCⅡ码C.65 D.37.语句char str[20];说明str是一个字符串,最多能表示()。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是()。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是()。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是()。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。
34-计算函数 (2)612-程序设计C 实验一题目一最简单的C程序 (3)80-程序设计C 实验二题目二计算n! (4)288-程序设计C 实验三题目八统计出现最多次的字母 (5)277-程序设计C 实验二题目五统计二进制数中的1的个数 (6)276-程序设计C 实验二题目四简单的计算器 (7)35-成绩的等级 (8)26-翻转数的和 (9)33-三个数的最大值 (10)37-利润提成 (11)39-字符个数 (11)42-平方和与倒数和 (13)46-自由落体 (14)56-Hamming Distance (15)77-程序设计C 实验二题目一计算员工周工资 (16)189-素数判定 (17)318-进制变换 (18)489-平方和与立方和 (19)563-平方和与立方和 (20)606-Sum (21)190-游程编码 (22)160-C++测试一 (23)320-鸡兔同笼 (24)203-Jack's problem (25)619-蟠桃记 (26)279-程序设计C 实验二题目七人数统计 (27)278-程序设计C 实验二题目六计分规则 (28)148-陶陶摘苹果 (29)171-字符串的倒序 (30)86-杨辉三角形 (31)34-计算函数Description有一个函数y={ x x<1| 2x-1 1<=x<10\ 3x-11 x>=10写一段程序,输入x,输出yInput一个整数xOutput一个整数ySample Input14Sample Output31Hint使用函数Source612-程序设计C 实验一题目一最简单的C程序Description请使用C编写一个程序输出下面这个话"Welcome to the OnlineJudge of Southwest University of Science and Technology!"Loco提示: 请养成输出完后换行的习惯,否则视为Presentation Error,不清楚如何换行的同学可以询问同学或者老师Input没有输入Output输出题目中要求的语句.Sample InputSample OutputWelcome to the OnlineJudge of Southwest University of Science and Technology! Hint这个题目非常简单,是让大家熟悉C编译器和本平台的.1、按照1.2.4、1.2.5节操作步骤创建第一个应用:(1)编辑你的第一个C源程序(2)保存你的源文件(3)编译、连接得到可执行程序(4)改正源程序中的错误(5)运行你的第一个程序2、你可以有三种方式运行你的程序:(1)在VC++6.0开发环境中运行程序选择Build|Execute hello.exe(或者Ctrl+F5),在开发环境中执行你的程序。
C语言程序设计试题一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:()A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:()A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:()A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:()A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:()A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、在C语言中(VC环境),一定是长整型常数的是:()A、0LB、4962710C、0412765D、0xa34b7fe11、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、以下合法的赋值语句是:()A、x=y=100B、d--;C、x + yD、c = int(a+b);13、设变量t为int型,下列选项中不正确的赋值语句是:()A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、在以下一组运算符中,优先级最高的是:()A、<=B、==C、%D、&&15、下列能正确表示a≥10或a≤0的关系表达式是:()A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、下列只有当整数x为奇数时,其值为“真”的表达式是:()A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、!(x%2)17、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”19、表达式17%4 /8的值为:()A、0B、1C、2D、320、语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:()A、无输出B、结果不确定C、-1D、121、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、组成C语句的一个必不可少的符号是:()A. 逗号B. 引号C. 冒号D. 分号23、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()A. intB. longC. floatD. double24、下述是C语言中有关变量定义的几个说法,正确的是:()A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、与x * = y + z等价的赋值表达式是:()A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、当代电子计算机能够自动地处理指定的问题是因为:()A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、以下叙述中最准确的是:()A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、关于计算机程序设计,以下描述最准确的是:()A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、目前编写计算机程序一般采用的是:()A.机器语言B.汇编语言C.高级语言D.英语30、设计一个计算机程序最基本的工作是:()A.制定正确的算法B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构D.以上都不是31、算法具有五个特性,以下选项中不属于算法特性的是:()A.有穷性B.简洁性C.可行性D.确定性32、下述哪一个不是结构化程序基本结构:()A.顺序B.选择C.循环D.嵌套33、C语言是一种:()A.机器语言B.汇编语言C.高级语言D.以上都不是34、C语言源程序的扩展名为:()A..exe B..c C..obj D..cpp35、C程序编译后最终产生(即计算机执行)的文件的扩展名为( )A..exe B..c C..obj D..cpp36、下列各项中,不是C语言的特点是:()A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数38、下列叙述正确的是:()A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、以下为C语句的是:()A.a=8 B.a++;C.if(a>8) D. #include <stdio.h> 以下不是C语句的是:()A.a=8; B.a++;C.if(a>8);D.for(i=1;i<5;i++) 42、以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、C程序中的复合语句指的是:()A.并列的多个C语句B.写在同一行中的多个C语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
《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语言程序设计试题_练习题一、选择题:(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 语言程序设计(第三版)习题库1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。
请编程序。
#include <>main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(__”%f ”__,&r);scanf(”%d ”,__&h_);;C1=2**r;Sa=*r*r;Sb=4*Sa;Va=4**r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb);}2、输入一个华氏温度,要求输出摄氏温度。
公式为 c=5(F-32)/9输出要求有文字说明,取位2小数。
#include <>main(){float F,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。
#include <>main(){int x,y;printf("输入x :");scanf("%d",&x);if(x<1) { /* x<1 */y=x;printf("x=%3d, y=x=%d\n",x,y);} else if (____x<10_______){ /* 1≤x -10 */_____y=2*x-1_______;printf("x=%3d, y=2*x-1=%d\n",x,y);} else{ /* x≥10 */y=3*x-11;printf("x=%3d, y=3*x-11=%d\n",x# include ""main(){scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}# include ""main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d\n",y);}# include ""main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;} # include "" main(){int x,y;scanf("%d",&x);y=x;else if(x>=1 && x<10)y=2*x-1;elsey=3*x-11;printf("%d",y);},y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。
一、名词解释(每小题4分,共20分)1. 变量2. 赋值运算3. int4. 数组5. 函数二、单选题(每小题2分,共20分)1. 以下运算符中,表示取余数运算的是( )A. %B. /C. !=D. <=2. C语言中,表示“不等于”、“不相等”的运算符是( )A. ≠B. !=C. < >D. =/=3. C语言中,printf函数中的格式字符%d用来( )A. 输出一个字符串B. 输出单个字符C. 输出十进制整数D. 输出双精度浮点数4. C语言中,要求接受用户从键盘输入的一个英文字符到char型变量ch中,那么,该语句的正确写法是( )A. scanf("%z",ch);B. scanf("%c",ch);C. scanf("%z",&ch);D. scanf("%c",&ch);5. 定义一个用来存放双精度浮点数且名为x的变量的正确语句是( )A. double x;B. float x;C. Double x;D. Float x;6. 判断整数型变量score的取值是否在区间[60,100]的正确写法是( )A. if (score>=60 and score<=100)B. if (score>=60 && score<=100)C. if (score>=60 & score<=100)D. if (60<= score <=100)7. 定义最多能存放30个整数且名为scores的数组的正确语句是( )A. INT scores[30];B. int [30] scores;C. int scores[30];D. INT [30] scores;8. 利用string.h中库函数求字符串s的长度的表达式正确写法是( )A. len(s)B. length(s)C. strLen(s)D. strlen(s)9.利用string.h中库函数判断字符串s1大于等于字符串s2的正确写法是( )A. if(strcmp(s1,s2)>=0)B. if (s1>=s2)C. if(strcmp(s1,s2)≥0)D. if (s1≥s2)10. 以下能输出数字0,1,2,3,4,5,6,7,8,9且每行输出一个数字的正确语句是( )A. for( i=0; i<10; i++ ) { printf("%d",i); }B. for( i=0; i<10; i++ ) { printf("%d\n",i); }C. for( i=0; i<10; i++ ) { printf("%d\n",i+1); }D. for( i=0; i<10; i-- ) { printf("%d\n",i); }三、判断题(每小题2分,共10分)1. C语言中,int可以作为变量名,例如语句:char int;可以定义名为int 的字符型变量。
C语言程序设计试题一、选择题BCCBA BADAA1、以下叙述中错误的是(B)A.一个C语言程序只能有一个主函数B.C语言编写的每个函数都可以进行独立的编译并执行C.C语言编写的函数都可以作为一个独立的源程序文件D.C语言编写的函数源程序,其文件名后缀可以是C2、一个C语言程序是由(C)A.若干过程组成B.若干子程序组成C.函数组成D.一个主程序和若干子程序组成3、以下叙述正确的是(C)A.在C程序中,main函数必须位于程序的最前面B.在对一个C程序进行编译的过程中,可发现注释中的拼写错误C.C语言本身没有输入输出语句D.程序的每行中只能写一条语句4、以下叙述正确的是(B)A.C程序的书写格式是固定的,每行只能写一条语句B.C程序中注释部分可以单独占一行C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.在对C语言程序进行编译时,可以发现注释行的拼写错误5、以下叙述不正确的是(A)A.在C语言中,注释说明只能位于一条语句的后面B.C程序的基本组成单位是函数C.一个C源程序可由一个或多个函数组成D.一个C源程序必须包含一个main函数6、以下关于结构化程序设计的叙述中正确的是(B)A.一个结构化程序必须同时由顺序、分支、循环三种结构构成B.在C语言中,程序的模块化是利用函数实现的C.由三种基本结构构成的程序只能解决小规模的问题D.结构化程序使用goto语句会很便捷7、以下叙述中错误的是(A)A.C语言编写的每个函数都可以进行独立的编译并执行B.C语言编写的函数源程序,其文件名后缀可以是CC.一个C语言程序只能有一个主函数D.C语言编写的函数都可以作为一个独立的源程序文件8、以下叙述中正确的是(D)A.C语言程序是由过程和函数组成的B.C语言函数不可以单独编译C.C语言中除了main函数,其它函数不可作为单独文件形式存在D.C语言函数可以嵌套调用9、计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是(A)A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.其余说法都不对D.C语言程序既可以编译执行又可以解释执行10、C语言规定,在一个源程序中,main的位置(A)A.可以任意B.必须在最后C.必须在最开始D.必须在系统调用的库函数后面二、非选择题(包括程序设计、程序改错、程序填空,以下各章均是)1、若s是int型变量,s=6;则表达式s%2+(s+1)%2的值为_____【参考答案】1假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_____【参考答案】93、C语言中的标识符只能由三种字符组成,它们是_____,_____和_____【参考答案】字母、数字、下划线4、若a.b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_____,b值为_____,c值为_____【参考答案】6、4、25、在C语言中,不带任何修饰符的浮点常量,是按_____类型数据存储的。
一、选择填空:(每题1.5分,共15分)1.以下可以正确表示字符型常数的是。
(A) “a”(B) ‘297’ (C) ‘\t’ (D)“\n”2. typedef struct{ char name[10];int age;char interests[20];} student;以上语句中 student 是:(A)结构体变量,有存储空间 (B)结构体数据类型,无存储空间(C)结构体变量,无存储空间 (D)结构体数据类型,有存储空间3.函数:void f(void){int i = 12, j;for(j=0; j<20; j++)i++;}当f执行完退出后,i的值为_____ _____(A) 12 (B) 32 (C) 29 (D) 无定义4.若有以下说明: 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+55.以下代码执行后,result的值为:#define FIVE 2+3result = FIVE * FIVE(A) 11 (B) 13 (C) 25 (D)106.已知函数定义的形式如下:struct data *f(void){……}则函数f:(A) 没有参数,返回值是一个结构体(B)有一个参数void, 返回值是一个结构体(C)没有参数,返回值是一个结构体指针(D)有一个参数void, 返回值是一个结构体指针7.下列说法中,不正确的是_ ____(A)函数中可以没有return语句。
(B)所有的函数都不能嵌套定义,但可以相互调用。
(C)函数的实参应与其对应的形式参数类型一致。
(D)函数可以不加函数返回值类型标识符。
8.一个C程序的执行是。
(A)从本程序的main函数开始,到main函数结束(B)从本程序文件的第一个函数开始,到本程序文件最后一个函数结束(C)从本程序的main函数开始,到本程序文件的最后一个函数结束(D)从本程序文件的第一个函数开始,到本程序的main函数结束9.在C语言的算术运算符中只能用于整型数的运算符是(A)* (B)/ (C)++ (D)%10 在下列选项中,没有构成死循环的程序段是(A)int i=100;while (1) {i=i%100+1;if(i>=100) break;}(B)for(;;);(C)int k=1000;do{++k;} while (k>=1000);(D)int s=36while(s); --s;二、写出下列程序的运行结果:(共35分)1.(8分)int funa(int *a) { a[0] ++; }int funb(int b[]) { b[1] += 5; }main(){int a[5] = {2,3,4,5,6};int b[5] = {2,3,4,5,6};int *p, i;p = &a[0];(*p)++;funb(p);for(i = 0; i <5; i++)printf("%d,",a[i]);p = &b[1];funa(p);funb(p);for(i = 0; i < 5; i++)printf("%d,",b[i]);}运行结果:2、(6分)main(){char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0; *(p1+i)!=’\0’&&*(p2+i)!=’\0’;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); }运行结果是:3、(8分)int f(int n){if (n==1){return 1;}else{return 2 * f(n/2);}}运行结果: f(20)的值是多少?4、(6分)void change (int *a, int *b){int x =* a;*a = *b; *b = x;printf(“%d %d “, *a, *b)';}void main(){int x=10,y=25;change (&x, &y);printf(“%d %d “, x, y)';}运行结果:5、(5分)已知字母A的ASCII码为十进制的65,下面程序的输出是void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}答案三、程序填空(每空2分,共38分)1、下面是一个求数组元素之和的程序。
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 语言程序设计试题一、单项选择题1.下列不属于C 语言保留字的是( )A. char B while C typedef D look2.下列关于C 语言的叙述错误的是( ) A 英文字母大小写不加以区分 B 不同类型的变量可以出现在同一个表达式中C 在赋值表达中赋值号两边的类型可以不同D 某些运算在不同的场合可以有不同的含义 3.下列转义字符中错误的是( )A ‘\000’B ‘\14’C ‘\x111’D ‘\2’4.执行语句Printf(“%x ”,-1);后输出结果是( ) A -1 B –ffff C. 1 D ffff5.设float a=2,b=4,c=3;,以下C 语言表达式与代数式21(a+b )c 计算结果不一致的是( ) A (a+b )*c/2 B (1/2)*(a+b)*c C (a+b)*c*1/2 D c/2*(a+b) 6.设int a=10,b=20,c=30; 条件表达式a<ba=5:c 的值是( ) A 5 B 10 C 20 D 30 7.设int a=9,b=6,c;执行语句c=a/b+;后c 的值是( ) A 1 B C 2 D 8.执行语句for ( i+1; i++<4;);后i 的值是( )A 3B 4C 5D 不确定9.在运算中,操作数左移一位,其结果相当于操作数( )A 乘以2B 除以2C 乘以4D 除以410.使用语句scomf (“a=%f,b=%f ”,&a,&b );输入变量a 、b 的值(口代表空格),正确的是( )A ,B 口C a=,b=D a=口b=11、下列说法中错误的是:A 、C 语言中循环嵌套的层数没有限定B 、C 语言中的内部函数只能在本文件中被调用 C 、用typedef 语句定义的数据类型名称必须是大写字母D 、C 语言中的continue 语句,可以通过改变程序的结构而省略12、设char s[10],*p=s;,下列语句中错误的是:A 、p=s+5;B 、s=p+5;C 、s[2]=p[4];D 、*p=s[0];13、设enum week{sun,mon,tue,wed,thu,fri,sat}day;正确的赋值语句是: A 、sun=0; B 、sun=day; C 、mon=sun=1; D 、day=sun;14、若用数组中作为函数调用时的实参,则实际上传递给形参的是:A 、数组的第一个元素值B 、数组元素的个数C 、数组中全部元素的值D 、数组首地址 15、下列错误的是:A 、char s[ ]=“china ”;B 、char s[10]={“china ”};C 、char s[10];s=“china ”;D 、char s[10]={‘c ’, ‘h ’, ‘i ’, ‘n ’, ‘a ’};16、在C 语言中,有值函数的数据类型是指( )A 函数形式参数的数据类型B 函数返回值的数据类型C 调用该函数时的实参的数据类型D 任意指定的数据类型 17.设Struct {short a;char b; float c;}cs; 则 size of (cs)的值是( )A 4B 5C 6D 718.设int x[ ]={1,2,3,4,5,6,7,8,9,0},*p=x, k;且0≤k<10,则对数组元素x[k]的错误引用是( )A P+KB *(X+K)C X[ P-X=K]D *(&X[K])19.设 #define N 3#define Y((n) ((N+1)*n)则表达式2*(N+Y(5+1))的值是()A 42B 48C 54 D出错20.关于主函数的形式参数,下列说法正确的是()A 可以有两个B 类型可以是实型C 不可以由用户自己定义名字D 是在程序编译时获得实际值二、填空题21.可以将被函数中获得的值返回给主调函数的语句是()。
一、选择题(每题1分,共20分)1.C语言程序从main()函数开始执行,所以这个函数要写在(D)。
A.程序文件的开始B.程序文件的最后C.它所调用的函数的前面D.程序文件的任何位置2.下列方法中错误的是(D)。
A.主函数可以分为两个部分:主函数说明部分和主函数体。
B.主函数可以调用任何非主函数的其它函数。
C.任何非主函数可以调用其它任何非主函数。
D.程序可以从任何非主函数开始执行。
3.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.intt4.C语言中的简单数据类型包括(D)。
A.整型、实型、逻辑型B.整型、实型、逻辑型、字符型C.整型、字符型、逻辑型D.整型、实型、字符型5.6.7.8.9.B.#defineP(a,b)=strcpy(a,b)C.#definestdio.hD.#definePI3.1415910.为表示逻辑表达式79<X<90,应使用的CA.(X>79)&&(X<90)B.(X>79)!=(X<90)C.79<X<90D.(X>79)||(X<90)11.设有语句“inta=2,b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是(A)。
A.1B.0C.-1D.出错12.字符串“ABCD”在内存占用的字节数是(D)。
A.4B.6C.1D.513.若有“inta=1,x=1;”,则循环语句“while(a<10)x++;a++;”的循环执行(A)。
A.无限次B.不确定次C.10次D.9次14.有以下程序段intk=0while(k)k++;则while循环体执行的次数是(C)。
A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次15.已知:inta[10];则对a数组元素的正确引用是(D)。
C语言程序设计试题附答案3篇C语言程序设计试题附答案11. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b=4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i=0_______;i--){if(____i%17==0____④________) break;}printf("%d\n",__⑤_i____);}3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
C语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(D )A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面2、下列四个选项中,是不合法的用户标识符的选项是(B )A、abcB、12ACC、sunD、 A3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是(A )A、—24B、0C、4D、164、下列运算符中优先级最高的是(B )A、〈B、+C、&&D、==5、在C语言中,运算对象必须是整型数的运算符是(A )A、%B、/C、%和/D、+6、以下关于运算符的优先顺序的描述正确的是(C )A、关系运算符〈算术运算符〈赋值运算符<逻辑与运算符B、逻辑与运算符〈关系运算符<算术运算符〈赋值运算符C、赋值运算符<逻辑与运算符〈关系运算符<算术运算符D、算术运算符〈关系运算符<赋值运算符〈逻辑与运算符7、在C语言中,如果下面的变量都是int类型,则输出的结果是( C )sum=pad=5;pAd=sum++,pAd++,++pAd;printf(“%d\n”,pad);A、7B、6C、5D、48、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( B )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);9、假定从键盘输入23456〈回车〉,下面程序的输出结果是:( C )void main ( ){ int m,n;scanf(“%2d%3d”,&m,&n);printf(“m=%d n=%d\n”,m,n);}A、m=23 n=45B、m=234 n=56C、m=23 n=456D、语句有错误10、若运行时,给变量x输入12,则以下程序的运行结果是(A )main(){ int x,y;scanf(“%d”,&x);y=x>12?x+10:x—12;printf(“%d\n”,y);}A、0B、22C、12D、1011、C语言中while和do-while循环的主要区别(A )A、do—while的循环体至少执行一次B、while 的循环控制条件比do—while的循环控制条件严格C、do—while允许从外部转到循环体内D、do-while的循环体不能是复合语句12、以下对二维数组的正确说明的语句是( C )A、int a[3][]B、float a(3,4)C、double a[3][4]D、float a(3)(4)13、以下程序的输出结果是(C)main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9};for (i=0;i<3;i++)printf(“%d”,x[i][2—i]);}A、1,5,9B、1,4,7C、3,5,7D、3,6,914、以下能对一维数组a进行正确初始化的语句是(C )A、int a[10]=(0,0,0,0,0);B、int a[10]={ };C、int a[10]={0};D、int a[10]={10 *1};15、以下程序执行后的输出结果是:(A )int fun(int a,int b,int c){ a=456;b=567;c=678;}void main(){int x=10,y=20,z=30;z=fun(x,y,z);printf(“%d,%d,%d\n",z,y,x);}A、30,20,10B、10,20,30C、10,30,50D、10,30,4016、以下说法正确的是(A)如果在一个函数中的复合语句中定义了一个变量,则该变量A、只在该复合语句中有效B、在该函数中有效C、在本程序范围内有效D、为非法变量17、以下函数调用语句中含有的实参个数为(B )func((exp1,exp2,exp3),(exp4,exp5));A、1B、2C、4D、518、在C语言程序中,以下说法正确的是( B )。
填空题 20*2■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。
■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。
在C语言中采用(while(1))或for(;;)语句实现死循环。
■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。
■编写串口中断程序时要在函数说明部分后写interrupt 4 。
■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。
■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。
相应的语句为temp=__~___temp; Flag=_!___Flag;。
■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。
■I2C的地址由(协议规定)与(硬件设置)两部分组成。
■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线SDA 。
■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。
■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。
■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。
■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。
■Cx51中函数分为两大类:标准库函数和用户自定义函数。
■在函数名前如果不指定函数类型,则该函数的类型为整型。
■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型,数据按一定的数据类型进行的排列、组合及架构称为数据结构。
■数据类型的转换有自动转换与强制转换两种。
■直接出现在程序中的数值(如TMOD=0x21)称为常数。
在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。
■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。
■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:SCON 、TMOD 、PCON 、TH1 、TL1 、TCON 和IE 。
■用位操作语句开T0定时器中断需要执行ETO=1 与EA=1 。
■用赋值语句开T0定时器中断需要执行IE=0x82 。
■用Cx51编程要掌握三个方面的技术:内部资源编程、扩展资源编程、与C语言的编程技巧。
■软件在处理按键时的流程是:去抖动、读键、等待释放、去抖动。
■单片机系统设计中经常用到单片机AD总线的读写时序来进行硬件系统设计,单片机C语句temp=XBYTE[地址]包含三层含义:①外部地址单元的数读到变量temp中。
②单片机的(RD)信号有效。
③外部地址单元的数据送到____P0___端口上。
■C51程序设计中在定义变量类型时一般要求定义为无符号字符。
■在结构化语言中,为了避免使用无条件转移语句,采用的命令是break与return 。
■不使用goto语句而要从循环体中提前退出、要使用命令break 。
■当前出现了以C语言取代汇编语言的发展趋势,但汇编编程却是不可摒弃的。
这是因为一个实际运行程序会要求:运行速度、响应时间、代码空间与时序控制。
■C中最高优先级的操作是取非。
■数组的两个基本特性是固定数目与相同类型。
■如果不在函数说明后用using选择寄存器组,则其地址范围为 00 至07 。
选择题: 10*2■不适用于用汇编语言编程的情况是 C对时序要求较严格的产品对程序代码空间有严格要求的产品对软件开发的进度有所要求的时候对实时性要求较高的应用场合■与MCS-51硬件资源无关的关键字是 A 。
A. c harB. codeC. interruptD. using■将一个变量v的值扩大一倍,效率最高的方法是 A 。
A. v=v+v;B. v=v*2;C. v=v<<1;D. 编译后都一样■将一个变量v的值扩大一倍,最通用的方法是 C 。
A. v=v+v;B. v=v*2;C. v=v<<1;D. 编译后都一样■在下面四种流程图中,哪种表示法最好? BA B C D ■将下面左边四项与右边四项用线连起来。
1data 80~FF32bdata 00~7F13sfr 20~2F24xdata 0000~FFFF4■单片机C语言程序设计中,用关键字(A )定义单片机的端口。
A. sbitB. bitC. unsigned charD. unsigned int■单片机C51中用关键字( C )来改变寄存器组。
A.interruptB.unsignedC. usingD.define■下面的语句哪个是设置定时器0的中断使能的(B )。
A.EX0=1;B. ET0=1;C.ES0=1;D. EA=1;■与开启定时器0中断无关的是 C 。
A.TR0=1;B. ET0=1;C.ES0=1;D. EA=1;■24C02采用的总线形式是 BA. CANB. I2CC. SPID. RS232■MCS-51串口采用的总线形式是AA. UARTB. I2CC. SPID. RS232■一个在程序运行中其值不会改变的数组,应定义其类型为 C 。
A. charB. unsigned charC. codeD. xdata■用MCS-51单片机串行口扩展并行接口,应采用 A 。
A. 方式0B. 方式1C. 方式2D. 方式3■下面哪一条不属于Cx51的优点? C 。
A. 具有较好的可读性,方便系统维护和升级。
B. 不需要较多考虑微处理器具体指令系统和体系结构的细节问题。
C. 源程序代码简短,运行速度快。
D.具有较好的移植性,能实现程序代码资源的灵活共享。
■下面哪一条不属于C语言的不足? D 。
A. 程序生成的代码占用空间大、效率低。
B. 不能准确计算程序的运行时间。
C. 不能对某些时序电路进行控制。
D. 只能针对MCS-51系列单片机编程。
■在对常量、变量、子程序与管脚命名时主要用小写字母的是 C 。
A. 常量B. 变量C. 子程序D. 管脚定义■下面是用MCS-51单片机操作I2C器件的一些概念,其中错误的是 D 。
A. 无I2C硬件接口B. 必须做为主机C. 必须I/O编程D. 可以中断接收■I2C器件的管脚特性为 B 。
A. TTLB. 开路输出C. RS232D. RS485■STC单片机片内E2PROM用了哪一个存储空间? D 。
A. AP程序存储器B. ISP程序存储器C. 数据存储器D. 独立的存储空间■STC单片机片内无哪一个硬件资源? C 。
A. AP程序存储器B. ISP程序存储器C.串行E2PROMD. 并行E2PROM■单片机混合编程设计时,如在C中定义了一个字符变量Count,要在汇编中使用时,对它正确的声明是(C )。
A.extrn bit(Count)B. extrn code(Count)C.extrn data(Count)D. extern data(Count)■混合编程中C语言调用汇编函数时,在汇编语言编程时要用 D 将汇编函数予以声明。
A.externB. extrn;C.extern codeD. public■软件在按键处理时,哪一项不是必须的? A 。
A.进入中断B. 延时去抖C.等待释放D. 错,三项都必须判断题: 15*22■用C51编程不需要考虑微处理器具体指令系统和体系结构的细节问题。
2■编程时在程序中不能出现常数。
1■用C51编程有可能某些指令或类型编译时能通过、但实际运行时会出错。
2■在编写软件时开发速度比代码的长短重要。
1■单片机程序设计中常常需要在最开始用循环语句来延时几十毫秒。
1■一个实际应用软件常常会严格要求程序的代码大小与运行速度2■Cx51自带的库函数与用户定义函数具有本质上的区别。
2■STC-ISP下载程序将编译生成的HEX文件写进STC单片机内部。
1■使用符号常量可做到一改全改,利于移植和升级。
1■要改变常量的值,必需先修改程序后重新编译。
2■串行通讯必须采用中断方式。
1■采用定时器查询方式时必须软件清除溢出标志。
1■进入串口中断后必须判断是接收中断还是发送中断。
2■进入定时器中断后必须软件清除溢出标志。
1■C51中,特殊功能寄存器一定需要用大写。
( )1■MCS-51单片机的程序存储器是可以用来存放数据的。
( )2■bit和sbit都是用来定义位变量,所以两者之间没有区别,可以随便替换使用。
1■单片机的程序中,一定有一个死循环的程序,否则,会出现运行错误。
1■中断函数的调用是在满足中断的情况下,自动完成函数调用的。
2■单片机能处理直接任何数据类型的变量,因此对变量的定义无特殊要求。
2■C 语言是单片机能直接识别的一种语言()2■I2C器件的地址由硬件连线所确定。
1■单片机程序设计时C语言中XBYTE和汇编语言中的MOVX是等效的2■用KEIL编译器编译程序会自动生成hex文件。
2■在单片机C语言程序设计用switch/case语句时,default项是必须的不然程序会跑飞。
2■用switch/case语句时,每条case后不加break则程序是错误的。
2■单片机C语言程序设计中可以不分大小写。
2■单片机C语言程序设计时只要完成相应的功能就行可以不考虑程序的结构和规范性。
2■单片机能处理直接任何数据类型的变量,因此对变量的定义无特殊要求。
1;C51程序设计中在定义变量类型时一般要求定义无符号数据类型。
1;定时器与计数器的工作原理均是对输入脉冲进行计数。
()2;MCS-51单片机晶振频率为12MHz,定时器/计数器作计数器使用时,其计数频2率为1 MHz()。
2;使用循环语句时是必须用花括号{}将循环体括起来。
2;应用Cx51编程必须清楚了解运算的优先级。
2;不清楚了解运算的优先级将无法编写出正确的程序。
2;用Cx51编程必须在每个函数说明后用using选择寄存器组。
2;STC单片机在操作I2C器件时,既可做为主机、也可做为从机。
2;STC单片机片内E2PROM占用了外部数据存储器空间。
2;I2C器件是串行通讯芯片,两条信号线是RXD与TXD。
1;I2C器件的两条信号线必须接上拉电阻。
1;当硬件上将按键接到INT引脚上后,也可以编程为定时扫描。