C语言程序设计练习一.docx
- 文档编号:30720131
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:25
- 大小:36.27KB
C语言程序设计练习一.docx
《C语言程序设计练习一.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习一.docx(25页珍藏版)》请在冰豆网上搜索。
C语言程序设计练习一
《C语言程序设计》练习一
一、单项选择题
1.下面转义字符中,表示字符串结束的是( d )
A.\rB.\nC.\0D.\f
2.在TurboC2.0中,若定义unsignedinta;则变量a在内存中分配的字节数是( c )
A.1个B.2个C.4个D.8个
3.设有intx=2,y,z;执行z=y=x--;后,变量z的值是( b )
A.0B.1C.2D.3
4.以十六进制形式输出整数的格式说明符是( b )
A.%uB.%ldC.%xD.%o
5.下面合法的if语句是( b )
A.if(a=b)c++;B.if(a=b)c++;D.if(a=>b)c++;
6.结束while(表达式)循环的条件是( )
A.当表达式的值为0时B.当表达式的值不为0时
C.当表达式的值为1时D.当表达式的值为非1时
7.若有定义inta[3][5];则数组a在内存中占用的字节数是( d )
A.8B.15C.16D.30
8.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是( )
A.charB.floatC.longD.int
9.若有说明:
int*p,m=5,n;以下正确的程序段是( a )
A.p=&n;B.p=&n;
scanf(〃%d〃,n);scanf(〃%d〃,*p);
C.scanf(〃%d〃,&n);D.p=&n;
p=n;*p=m;
10.变量的指针,其含义是指该变量的( b )
A.值B.地址C.名D.一个标志
16.结构体是C提供的一种专门处理彼此相互有联系,数据类型( a )
A.不一致的多个数据的数据结构B.不一致的单个数据的数据结构
C.一致的多个数据的数据结构D.一致的单个数据的数据结构
11.下面列出的位运算符中,表示按位与操作的是( b )
A.~B.&C.^D.|
12.设有说明:
intx=0x03,y=3;表达式x&~y的值是( )
A.0B.1C.2D.3
19.设有说明:
intu=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是( )
A.0B.1C.3D.5
13.设有说明:
FILE*fp;char*filename=〃paper〃;
对于fp=fopen(filename,〃rb+〃);语句,下面说法正确的是( d )
A.打开名为filename的文件读写B.打开名为paper的文件读写
C.打开名为filename的文件只读D.打开名为paper的文件只读
14.设有inta=3,b=-4,c=5;表达式(a
a+b:
(a-b,b+4,a-=b+4)的值是( )
A.–1B.0C.3D.7
15.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( d )
(其中
inta,b;
scanf(″a=%db=%d″,&a,&b);
A.2
3
16.下面程序段的输出结果是( b )
main()
{ints,p;
s=p=5;
p=++s;
p++;++p;
printf(″%d\n″,p);
}
A.5B.6C.7D.8
17.下列if语句中,有语法错误的是( b )
A.if(x>y);
B.if(x=y)x+y;
C.if(x!
=y)scanf(″%d″,&x)elsescanf(″%d″,&y)
D.if(x 18.下面程序段执行后的输出结果是( a ) inti=-1; if(i<=0)printf(″****\n″); elseprintf(″%%%%\n″); A.****B.%%%%C.%%%%cD.****c 19.下面程序段的循环次数是( c ) intk=2; while(k==0)printf(″%d″,k); k--;printf(″\n″); A.0次B.1次C.2次D.无限次 20.下面程序段的输出结果是( d ) a=100; while(a>120); a=a+1; printf(″%d″,a); A.100B.101C.120D.121 21.下面程序执行后,i的值是( c ) main() {inta[5]={1,2,3,4,5},i=2 printf(″%d″,a[i++]); } A.1B.2C.3D.4 22.下面程序的输出结果是( ) main() {inti,x[3][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<4;i+=2)printf(″%d″,x[i][1]); } A.51B.52C.82D.93 23.在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是( ) A.由系统自动指定对应实参和形参是否共用存储单元 B.对应实参和形参各占一个独立的存储单元 C.对应实参和形参共用一个存储单元 D.可以由用户指定对应实参和形参是否共用存储单元 24.下面叙述中不正确的是( ) A.不同函数中可以使用相同名字的变量 B.形式参数是局部变量 C.在一个函数内部定义的变量只能在本函数范围内有效 D.在一个函数内部的复合语句中定义的变量在本函数范围内有效 25.设有语句inta[4][10],*p=*a;则下面表达式中属于地址表达式的是( ) A.a[1][2]B.a[1]C.*(p+1*10+2)D.*(a[1]+2) 26.下面定义不正确的是( ) A.structstarB.structstar {{ intidintid; char*name;char*name; }star1={1001,″Moon″};};star1={1001,″Moon″}; C.structD.structstar {{ intid;intid; char*name;char*name; }star1={123,″Sun″};}star1; 27.下面各个位运算符的优先级从左到右依次升高的是( ) A.|^&>>B.^>>&~C.<<|^~D.~|&>> 28.设有说明: intu=1,v=14;表达式u+v>>2的值是( ) A.0B.3C.5D.7 29.如果将文件指针fp指向文件末尾,正确的语句是( ) A.feof(fp);B.rewind(fp);C.fseek(fp,0L,0);D.fseek(fp,0L,2); 30.下面程序段中,不能完成的功能是( ) FILE*fp; charch=′v′; fp=fopen(″boy″,″rb+″); fputc(ch,fp); A.建立文件指针fp与文件boy的联系B.从boy文件中读取一个字符 C.向boy文件中写一个字符D.打开名为boy的二进制文件 31.设有inta=3,b=-4,c=0;表达式((a>b)? a: b)&&c<0的值是( ) A.-4B.0C.1D.3 32.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( ) (其中 inta,b; scanf(″a=%d,b=%d″,&a,&b); A.2 3 33.下面程序段的输出结果是( ) main() {ints,p; s=p=5; p=--s; p++;++p; printf(″%d\n″,p); } A.5B.6C.7D.8 34.关于if语句下面叙述正确的是( ) A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句 B.只有当if语句中表达式的值为假时,才执行if的内嵌语句 C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句 D.只要if语句中表达式的值非0时,就执行if的内嵌语句 35.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是( ) main() {inta,b,s; scanf(″%d″,&a,&b); s=a; if(a s=s*s; printf(″%d″,s); } A.9B.12C.16D.25 36.若intx=0;则while(x==0);的循环次数是( ) A.0B.1C.2D.无限次 37.下面程序段的输出结果是( ) for(i=1;i<3;i++) {for(j=1;j<3;j++) printf(″%d″,i+j); printf(″\n″);} A.2334B.234 C.23D.2 3434 38.下面程序的输出结果是( ) mian() {inta[5]={2,4,6,8,10},i; i=2; printf(″%d″,a[i++]); } A.2B.4C.6D.8 39.下面程序的输出结果是( ) main() {inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; inti,j,k=0; for(i=0;i<3;i++) k=k+a[i][0]; printf(″%d\n″,k); } A.27B.33C.39D.45 40.以下正确的函数定义形式是( ) A.doublefun(intx,inty)B.doublefun(intx;inty) C.doublefun(intx,inty);D.doublefun(intx,y); 41.关于变量以下不正确的说法是( ) A.在不同函数中可以使用相同名字的变量 B.形式参数是全局变量 C.在函数内定义的变量只在本函数范围内有效 D.在函数内的复合语句中定义的变量是局部变量 42.设有语句inta[4][10],*p=*a;则下列表达式中不是地址表达式的是( ) A.&a[1][2]B.a[3]C.*(p+1*10+2)D.p+1*10+2 43.下面关于结构体类型变量定义不正确的是( ) A.structscoreB.struct {{ intmath;intmath; intChinese;intChinese; }Li,Wang;}Li,Wang; C.structscoreD.structscore {{ intmath;intmath; intChinese;intChinese; };};Li,Wang; structscoreLi,Wang; 44.下面各个运算符的优先级从左到右依次降低的是( ) A.&>>|^B.~&>>| C.>>&^|D.~>>&^ 45.设有说明: intu=1,v=2;表达式: u+v<<2的值是( ) A.-1B.1C.9D.12 46.下面程序段中,不能完成的功能是( ) FILE*fp; charch; fp=fopen(″file1″,″rb+″); ch=fgetc(fp); A.建立文件指针fp与文件file1的联系B.从file1文件中读一个字符 C.向file1文件中写一个字符D.打开名为file1的二进制文件 47.在格式: fread(stu,size,n,fp);中,下面说法不正确的是( ) A.stu是内存中存放数据的首地址B.n表示读n次 C.size是一个数据块的字节数D.fp表示文件指针 48.字符串常数“CHINA”在内存中存储时占的字节数是( ) A.5个B.6个C.7个D.8个 49.如果a=1,b=2,c=3,d=4,则表达式a>b? a: c c: d的值是( ) A.1B.2C.3D.4 50.输出字符串的格式说明符是( ) A.%cB.%sC.%uD.%g 51.设有说明intx=0,y=0; 则执行if(x++)y=1+x; elsey=2+x; 后,变量y的值是() A.0B.1C.2D.3 52.以下程序段所表示的数学函数关系是( ) y=-1 if(x! =0)if(x>0)y=1;elsey=0; A. B. C. D. 53.执行下面程序段后,输出字符A的个数是( ) for(i=0;i<=5;i+=2) printf(″A″); A.0个B.3个C.5个D.6个 54.若有定义chara[]=″computer″;则存储字符m的数组元素是( ) A.a[1]B.a[2]C.a[3]D.a[4] 55.若有定义inta[4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是( ) A.1B.2C.3D.4 12.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A.自动(auto)B.静态(static)C.外部(extern)D.寄存器(register) 56.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为( ) A.源文件的全部范围B.本程序的全部范围 C.本函数的全部范围D.从定义该变量的位置开始至本文件末尾 57.下列定义中,不是指针数组定义的是( ) A.int*p[5];B.float*q[4];C.int(*r)[6];D.char*w[7]; 58.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是( ) A.a,point,*&aB.&*a,&a,*point C.*&point,*point,&aD.&a,&*point,point 59.下列程序的运行结果是( ) #difineN9 fun(chars[]) { char*p=s+4,*q=s; inti; for(i=0;i<4;i++,p++,q++) { s[i]=*p; s[i+4]=*q } } main() { charss[N]=″ABCDEFGH″; fun(ss) printf(″%s\n″,ss); } A.EFGHABCDB.EFGHEFGHC.ABCDEFGHD.ABCDABCD 60.设有结构体的定义如下: ( ) structcjd{longbh;int*q;charxm[9];}; 则sizeof(structcjd)的值是 A.14B.15C.16D.17 61.设有说明: intx=0x15,y=0x0f;则x&y的结果是( ) A.0x5B.0x15C.0xf0D.0xf5 62.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是( ) A.#include C.#incLude 63.由FILE*fp;fp=fopen(″a: \\abc.txt″,″r+″);可以推知fopen函数的原型是( ) A.char*fopen(char,char);B.FILE*fopen(char*,char*); C.intfopen(char*,char*);D.FILFfopen(char*,char*); 64.整数-2在机器内存中的表示是( ) A.1000000000000010B.111111*********0 C.111111*********01D.111111*********1 65.下列运算符中优先级最低的是( ) A.>B.! C.%D.== 66.设有inta=3,b=-4,c=5;表达式++a-c+b++的值是( ) A.-6B.-5C.-4D.-3 67.以十进制无符号形式输出整数的格式说明符是( ) A.%uB.%xC.%oD.%d 69.下列程序段的输出结果是( ) voidmain(void) { inyy=1,x=5; if(x<0)y=-1; if(x>=0)y=0; printf("%d\n",y); } A.-1B.0C.1D.5 69.执行如下程序段后,x的值是( ) intx=1,y=-1; if(y<0)x-=y; elsex+=y; A.-1B.0C.1D.2 70.执行while(表达式)循环的条件是( ) A.当表达式的值为0时B.仅当表达式的值为1时 C.当表达式的值非0时D.当表达式的值不为1时 71.下列程序段输出的结果是( ) for(i=1;i<3;i++) for(j=1;j<3;j++) printf("%d",i+j); A.2334B.234 C.23D.2 3434 72.若有定义ints[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是( ) A.1B.2C.3D.4 73.下列关于C语言程序说法正确的是( ) A.C语言程序总是从有定义的函数起顺序执行 B.在C语言程序中,被调用函数必须在main函数中定义 C.C语言程序中的main函数必须放在程序的开始部分 D.C语言程序总是从main函数起开始执行 74.若有inta[]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是 ( ) A.&a+1B.&a++C.&aD.&a[i] 75.下列关于结构体类型定义正确的是( ) A.structABCB.structABC {{ intainta; charbcharb; char*pchar*p; }} C.structABCD.structABC {{ inta;inta, charb;charb, char*p;char*p, };}; 76.下列位运算符中,表示按位异或操作的是( ) A.~B.│C.^D.& 77.下列各个位运算符的优先级从左到右依次升高的是( ) A.>>│&~B.│>>&~C.│&>>~D.~│&>> 78.设有说明: intu=1,v=3;则表达式u<<=v的值是( ) A.0B.1 C.3D.8 79.如果文件存储的是数据在内存中存放的字节形式,则该文件是( ) A.ASCII文件B.文本文件C.二进制文件D.设备文件 80.下列转义字符中,表示回车的是( ) A.\0B.\nC.\rD.\f 81.若定义doubled;则d在内存中分配的字节数是( ) A.1个B.2个C.4个D.8个 82.下列表达式中运算结果为3的表达式是( ) A.(-7)%4B.7/4+2C.7/4*4-4D.8/3+8/3 83.设有inta=3,b=-4,c=5;表达式a++-c+b++的值是( ) A.-6B.-5C.-4D.-3 84.在printf语句中,格式说明符u表示( ) A.以十进制带符号形式输出整数 B.以十六进制带符号形式输出整数 C.以十进制无符号形式输出整数 D.以十六进制无符号形式输出整数 85.若有inta=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是( ) if(a { if(c==d) x=c; } else x=d++ A.4B.5C.6D.7 86.关于switch中的表达式,正确的说法是( ) A.它必须是算术表达式B.它必须是关系表达式 C.它必须是逻辑表达式D.它可以是任意类型的表达式 87.对do语句while(表达式);结构的循环,下列说法正确的是( ) A.当表达式的值为非零时不执行循环体 B.循环体至少被执行一次 C.当表达式的值为零时循环体一次也不执行 D.循环体仅被执行一次 88.只能在循环语句中用于结束本轮循环的语句是( ) A.break;B.continue;C.gotoD.if 89.若有定义inta[3][5];则数组a在内存中分配的字节数是( ) A.8B.15C.24D.30 90.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入? ( ) A.gets(strl)B.gets(strl,str2)C.getchar(strl)D.getchar(strl,str2) 91.下列关于函数的描述中正确的是( ) A.C程序中有调用关系的所有模块必须放在同一个源文件中 B.函数必须有返回值,否则不能使用函数 C.C程序必须由一个或一个以上函数构成 D.C函数既可以嵌套定义又可以嵌套调用 92.设有下列程序,则( ) intd=10; main() { inta=3;printf(“%d,%d\n”,a,d); } A.a是全局变量,d是全局变量B.a是局部变量,d是全局变量 C.a是全局变量,d是局部变量D.a是局部变量,d是局部变量 93.若有说明: int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是( ) A.p1=m;B.&p2=n;C.pl=&m;p2=p1;D.*p1=&m; 94.下列为指针数组定义的是(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习