安徽大学 C语言平时作业

更新时间:2023-12-20 19:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言基本概念

能将高级语言编写的源程序转换成目标程序的是______。

A) 编辑程序 B) 编译程序 C) 解释程序 D) 链接程序 以下选项中合法的用户标识符是______。 A) long B) _2Test C) 3Dmax D) A.dat 以下叙述正确的是( )

A) 可以把define和if定义为用户标识符

B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符 以下叙述正确的是( ) A) C语言比其他语言高级

B) C语言可以不用编译就能被计算机识别执行

C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 在一个C语言程序中_______ A) main函数必须出现在所有函数之前 B) main函数必须出现在所有函数之后 C) main函数可以在任何地方出现

D) main函数必须出现在固定位置

一个C语言程序是由_______组成的。

A) 一个主程序和若干子程序 B) 若干子程序 C) 函数 D) 若干过程 以下叙述中正确的是( )

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

B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译

下列关于C语言用户标识符的叙述中正确的是( )

A) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 B) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 C) 用户标识符中不可以出现中划线,但可以出现下划线 D) 用户标识符中可以出现下划线和中划线(减号) 以下说法中正确的是( )

A)C语言程序总是从第一个定义的函数开始执行

B)C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分 一个C程序的执行是从( )

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 C语言编程整个操作的过程是( ) A)编辑、编译、链接、执行

B)编译、编辑、链接、执行

C)链接、编译、编辑、执行 D)编辑、链接、编译、执行

下列说法不正确的是( ) A)链接操作将生成扩展名为.lnk的文件 B)编辑过程将生成扩展名为.cpp或.c的文件 C)编译过程将生成扩展名为.obj的文件

C)C编程最终要生成扩展名为.exe的文件 C语言提供了丰富的结构化语句,直接支持____、_____和_______三种基本程序结构。 A)顺序、分支、过程 B)顺序、分支、循环 C)分支、过程、循环

D)顺序、过程、循环

下列说法正确的是( )

A)C语言版本众多,但这些版本大多不能兼容 B)C语言只能在固定的操作系统上运行。

C)C语言不包含依赖硬件的输入/输出语句,其输入/输出功能语句需要手工来编写。 D)C语言允许对位、字节、地址这些计算机功能中的基本成分进行操作。

当用户用编辑器将C语言程序录入到计算机后,就建立一个源文件,则( ) A)源文件可以直接被计算机执行 B)源文件需要编译后就可执行

C)源文件经过编译链接后生成的可执行程序和源程序是独立的 D)错误调试一般在执行过程进行 下列说法中正确的是( )

A.由于C源程序是高级语言程序,因此一定要在VC++软件中输入

B.由于C源程序是字符组成,因此可以作为文本文件在任何文本编辑的软件中输入 C.由于C程序是高级语言程序,因此输入后即可执行 D.由于C程序是高级语言程序,因此它由命令组成 下列说法中错误的是( )

A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其它函数 C. 任何非主函数可以调用其它任何非主函数 D. 程序可以从任何非主函数开始执行 答案:BBDCC CBCCA AABDC BD

C基本数据类型及计算

下列不正确的C语言用户标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 下列正确的C语言标识符是____。

A) #define B) _123 C) %d D) \\n

下列四组字符串中都可以用作C语言程序标识符的一组是____ 。 A) print __123 Pxq str_l

B) _3d one_half My->book Cpp

C) oodb start$it line# pow

D) aBc 3pai His.age while

下面各选项组中,均是C语言关键字的组是____ 。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 下列不属于C语言关键字的是____ 。

A) default B) register C) enum D) external 执行语句 printf(\;屏幕显示____。 A) -1 B) 1 C) -ffff D) ffffffff

已知 int a=2,b=1,c;执行语句c=b/a+2.5后, c的值____。 A) 2.5 B) 3 C) 3.0 D) 2

有关变量已经定义,以下合法的数值表达式是____。 A) a=1/b=2 B) ++(a+b) C) b=b/(a=6) D) c=int(a)+b 将字符g赋给字符变量c,正确的表达式是____ 。 A) c=\\147 B) c=\ C) c='\\147' D) c='0147' 下列转义字符中错误的一个是____。

A) '\\000' B) '\\014' C) '\\x111' D) '\\2'

将空格符赋给字符变量c,正确的赋值语句是____。 A) c='\\0' B) c=NULL C) c=0 D) c=32 已知:char a='\\70';则变量a中 。 A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明非法

字符串\的长度是____。 A) 8 B) 9 C) 14 D) 非法字符串 字符串\的长度是____。

A) 0 B) 1 C) 2 D) 非法字符串

已知:char a;int b;float c;double d;执行语句\;\后,变量c的数据类型是 。

A) int B) char C) float D) double

逗号表达式\的值是____。

A) 15 B) 60 C) 30 D) 不确定

如果int a=1,b=2,c=3,d=4;则条件表达式a

已知int i=10;表达式\的值是____。 A) 0 B) 1 C) 19 D) 20

已知int x=1,y;执行下述语句后变量x的值是____。 y=++x>5&&++x<10;

A) 1 B) 2 C) 3 D) 4

为判断字符变量c的值不是数字也不是字母时,应采用下述表达式____。 A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。 A) 0 B) 1 C) 5 D) 6

答案:ABABD DDCCC DABAC CABBD C

输入和输出

设a=3,b=4, 执行“printf(“a=%d,B=%d\”的输出是( ) A. a=3,b=4 B. 3,4 C. a=3,B=4 D.a=3 B=4

设a=1234,b=12,c=34 执行“printf(“|==%-3d|\\n”,a,b,c); ”的输出是( ) A.|12341234 | B.|1231234| C.|123412-34| D.|2341234| 使用“scanf(“x=%f,y=%f”,&x,&y);”,要使x,y均为1.25,正确的输入是( ) A. 1.25,1.25 B. 1.251.25 C. x=1.25,y=1.25 D. x=1.25 y=1.25 要使double x; long a; 获得数据,正确的输入语句是( ) A. scanf(“%d,%f”,&a,&x); B. scanf(“%f,%ld”,&x,&a); C. scanf(“%d,%lf”,&a,&x); D. scanf(“%ld,%lf”,&a,&x);

设有int a=255,b=8;则printf(“%x,%o\\n”,a,b);的输出的是( ) A. 255,8 B. ff,10 C. 0xff,010 D. 输出格式错

设a、b为字符型变量,执行“scanf(“a=%c,b=%c”,&a,&b);”后使a为’A’,b为’B’,从键盘上的正确输入是( ) A. ?A??B? B. ?A?,?B? C. A=A,B=B D. a=A,b=B 语句printf(“%f%%”,1.0/3);的输出结果为:

A.0.333333 B.0.333333% C.0.333333%% D.出错

已有定义int x ;float y;且执行scanf(\输入数据为12345 678<回车>,则x和y的值为:

A.123 45.000000 B.123 678.000000 C.12345 678.000000 C.345 678.000000 有如下的定义和输入语句: int a1,a2;char c1,c2;

scanf(\ scanf(\

若要求a1,a2,c1,c2的值分别为10、20、A和B,则正确的数据输入方式为( ) A. 1020AB B. 10 20AB C. 10 20 AB D. 10 20AB

已有定义:float f1,f2;程序运行时输入数据为4.52 3.5 ,则输入语句正确的为( ) A.scanf(\ B.scanf(\ C.scanf(\

D.scanf(\

下列数据中属于“字符串常量”的是( ) A.“a” B. {ABC} C. ?abc\\0? D. ?a? 在PC机中,‘\\n’在内存占用的字节数是( ) A. 1 B. 2 C. 3 D. 4 在PC机中,“a\\xff” 在内存占用的字节数是( ) A. 5 B. 6 C. 3 D. 4

在C语言中,合法的长整型常数是( )

A. 0L B. 4962710 C. 0.054838743 D. 2.1869e10 下列数据中不属于“字符常量”的是( )

A. ?\\a? B. ?\\160? C. ?\\070? D. 070 答案:CACDB DBADB AACAD

C程序控制结构

结构化程序设计的3种结构是 A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构 已知 int t=0;

while (t=1) {...}

则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对

有如下程序: main()

{

int x=1,a=0,b=0; switch(x) {

case 0: b++; case 1: a++;

case 2: a++;b++; }

printf(\\n\);}

该程序的输出结果是

A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 有以下程序 main()

{int i=1,j=1,k=2; if((j++||k++)&&i++)

printf(\\n\); }

执行后输出结果是

A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 有如下程序 main()

{float x=2.0,y; if(x<0.0)y=0.0;

else if(x<10.0)y=1.0/x; else y=1.0;

printf(\\n\);}

该程序的输出结果是

A)0.000000 B)0.250000 C)0.500000 D)1.000000 有如下程序: main()

{int n=9;

while(n>6){n--; printf(\);}

}

该程序的输出结果是

A)987 B)876 C)8765 D)9876 在下列选项中,没有构成死循环的是 A)int i=100; while(1) {i=i0+1;

if(i>100)break; }

B)for(;;);

C)int k=10000;

do{k++;}while(k>10000); D)int s=36;

while(s)--s;

有如下程序段 #include \

main()

{int a=10,b=50,c=30; a=a>30?1:2; b=b>30?1:2;

c=c>30?1:2;

printf(\\n\);}

则执行结果为

A)2,1,2 B)1,2,1 C)1,1,2 D)2,1,1 阅读如下程序段 #include \ main()

{ int a=45,b=40,c=50,d; d=a>30?b:c; switch(d)

{ case 30 : printf(\); case 40 : printf(\); case 50 : printf(\); default : printf(\);}}

则输出的结果是

A)40,50, B)50,# C)40,# D)40,50,# 若有定义int k=10;则下列程序的输出结果为 do{

printf(\); } while(!k);

A)9 B)10 C)10987654321 D)没有输出 阅读下列程序段,则程序的输出结果是 #include \ main()

{ int a=10,b=10,k;

for(k=0;a>8;b=++k) printf(\);

printf(\\n\);}

A)10,10,10,0, B)10,9,9,0, C)10,10,9,1, D)9,9,9,1, 下列程序的运行结果是 #include \ main()

{int a,b,m;

for(a=5;a>=1;a--) { m=0;

for(b=a;b<=5;b++)

m=m+a*b;}

printf(\\n\);}

A)30 B)15 C)20 D)10

若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是(A)9 B)8 C)3 D)2 下列程序的输出结果是 #include \ main() { int i=6; while(i--)

printf(\);

printf(\\n\);}

A)531 B)420 C)654321 D)死循环 阅读下列程序,则执行结果是 #include \ main()

{int a=0,b=0,c=0,i; for(i=0;i<4;i++) switch(i) {case 0:a=i++; case 1:b=i++;

case 2:c=i++; case 3:i++;}

printf(\\n\);}

A)0,1,3,4 B)1,2,3,4 C)0,1,2,5 D)0,2,3,4 下面程序的运行结果是 #include \ main()

{int j,i,k=0;

for(j=50;j<=60;j++) {if(!(k))printf(\\n\); for(i=2;i=j-1){printf(\);

k++;}}}

A)5359 B)5953 C)3595 D)9535 已知char ch='C';则以下表达式的值是 ch=(ch>='A′ && ch<='Z′)?(ch+32):ch; A)A B)a C)Z D)c 下列程序的运行结果是 #include \ main()

{ int x=-9,y=5,z=8; if(x

else z+=1;

printf(\\n\);}

A)6 B)7 C)8 D)9

现有定义int k=1;则执行语句while(++k<4);后,k的值为 A)4 B)5 C)6 D)8 以下程序的运行结果为 #include \ main()

{int m,n;

for(m=0,n=10;m

A)6,7 B)7,6 C)9,7 D)7,9 答案:DBACC BDABD BBCBC ADDAC

数组

1、若有以下数组说明,则数值最小和最大元素的下标分别是( )。 int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

A.1,12 B.0,11 C.1,11 D.0,12

2、若有以下数组说明,且i=10;则a[a[i]]元素数值是( )。 int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A.10 B.9 C.6 D.5 3、设有定义:char s[12]={“string”};,则 printf(“%d\\n”,strlen(s));的输出是( )。

A.6 B.7 C.11 D.12 4、以下对数组描述正确的是( )。

A.数组一旦定义其大小是固定的,但数组元素的类型可以不同 B.数组一旦定义其大小是固定的,且数组元素的类型必须相同

C.数组一旦定义其大小是可变的,且数组元素的类型可以不同 D.数组一旦定义其大小是可变的,但数组元素的类型必须相同 5、以下叙述中错误的是( )。

A.不可以用数组名对数组整体进行操作

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

6、下列定义的字符数组中,printf(“%s\\n”,str[2]);语句的输出是( )。 char str[3][20]={“basic”,“foxpro”,“windows”};

A.basic B.foxpro C.windows D.输出语句出错 7、以下能正确将字符串“Boy”进行完整赋值操作的是( )。 A.char s[3]={?B?,?o??y?}; B.char s[]=“Boy”;

C.char s[3]={“Boy”};

D.char s[3];s[0]=?B?;s[1]=?o?;s[2]=?y?;

8、定义: char a[]=\则数组 a所占的空间为( )。 A.4个字节 B.5个字节 C.6个字节 D.7个字节

9、若有int a[4]={1,2,3,4};,则a[a[0]+2*a[2]-a[3]]的值( )。

A.1 B.2 C.3 D.4

10、设变量定义为char format[]=“s=%d\\n”;则数组format中有( )个元素。 A.4 B.5 C.6 D.7

11、静态整型数组不赋初值时,其各元素的值是( )。 A.不定值 B.-1 C.0 D.1 12、有以下程序段的输出结果是( )。 char a[]=“abcdefgh”; int m,n;

m=sizeof(a); n=strlen(a);

printf(“%d,%d\\n”,m,n);

A.9,9 B.8,9 C.8,8 D.9,8 13、以下程序段的输出结果是( )。 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 14、以下程序运行后的输出结果是( )。 main()

{int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2)j+=p[i]; printf(\ }

A.42 B.45 C.56 D.60 15、以下程序执行后输出结果是( )。 main()

{int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2) {k=k+p[i];i++;} printf(\

}

A.58 B.56 C.45 D.24

16、设int x[10]={0,2,4};,假定在VC++编译环境下,int类型变量占用四个字节,则数组x在内存中所占字节数是( )。

A.6 B.12 C.20 D.40

17、定义: int a[2][2]; 则数组 a在内存中的存放顺序为( )。 A.a[0][0]、a[1][0]、a[0][1]、a[1][1] B.a[0][0]、a[0][1]、a[1][0]、a[1][1] C.a[0][0]、a[1][1]、a[0][1]、a[1][0] D.a[0][0]、a[1][1]、a[1][0]、a[0][1]

18、以下数组定义中不正确的是( )。 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}}; 19、以下程序的输出结果是( )。 main()

{int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j];

printf(“%d\\n”,s); }

A.18 B.19 C.20 D.21

20、数组定义为int a[3][2]={1,2,3,4,5,6},数组元素( )的值为6。 A.a[3][2] B.a[2][1] C.a[1][2] D.a[2][3] 21、以下程序的输出结果是( )。 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,9 B.1,4,7 C.3,5,7 D.3,6,9 答案:BCADC CBCDC CDCBD DBDAB C

指针

1.执行以下程序后,a的值为( ).

本文来源:https://www.bwwdw.com/article/5jb5.html

Top