佳木斯大学历年C语言程序设计

本试卷为佳木斯大学历年C语言程序设计,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

C语言程序设计

一、理论基础 (共20题,每题1分,共计10分)

(  A  )
1、下列合法的声明语句是________。
A、int _abc=50;
B、double int=3+5c2.5:
C、long do=11;
D、float 3_asd=3e-3;
(  D  )
2、若x=5,y=3 则y*=x+5; y的值为________.
A、10
B、20
C、15
D、30
(  A  )
3、若有定义语句:"char se10]="1234567\0\0"; ",则strlen(s)的值是________。
A、7
B、8
C、9
D、10
(  D  )
4、若 d 为 double 型变量 , 则表达式 d=1,d+5,d++ 的值是 _________.
A、1
B、6.0
C、2.0
D、1.0
(  C  )
5、在c语言中,以下一组运算符中,优先级最高的运算符是______。
A、<=
B、=
C、%
D、&&
(  B  )
6、下列可用于c语言用户标识符的一组是________。
A、void,define,WORD
B、a3_b3,_123,Car
C、For,-abc,IF Case
D、2a,DO,sizeof
(  B  )
7、以下叙述正确的是________。
A、可以把define和if定义为用户标识符
B、可以把define定义为用户标识符,但不能把if定义为用户标识符
C、可以把if定义为用户标识符,但不能把define定义为用户标识符
D、define和if都不能定义为用户标识符
(  A  )
8、下列哪个赋值语句是不正确的
A、float f=11.1;
B、double d=5.3E12;
C、float d=3.14f;
D、double f=11.1E10f;
(  C  )
9、设a=12,a定义为整型变量。表达式a+=a-=a*=a的值为______。
A、12
B、144
C、0
D、132
(  C  )
10、下列语句序列执行后,i的值是________。 int i=10; do { i-=2; } while(i>6);
A、10
B、8
C、6
D、4
(  B  )
11、与十六进制数ab等值的二进数是________。
A、10101010
B、10101011
C、10111010
D、10111011
(  B  )
12、微处理器按其字长可以分为________。
A、4位、8位、16位
B、8位、16位、32位、64位
C、4位、8位、16位、24位
D、8位、16位、24位
(  B  )
13、已知int a[3][2]=(3,2,1); 则表达式"a[0][0]/a[0][1]/a[0][2]"的值是________。
A、0.166667
B、1
C、0
D、错误的表达式
(  D  )
14、以下合法的常量是________。
A、-80.0e
B、-080
C、-8e1.0
D、-80.
(  C  )
15、c 语言的编译系统对宏定义的处理是________。
A、在程序连接时进行的
B、在程序运行时进行的
C、在对源程序中的其它语句进行编译前进行的
D、和 C 程序中的其它语句同时进行编译的
(  B  )
16、软件设计中模块划分应遵循的准则是________。
A、低内聚低耦合
B、高内聚低耦合
C、低内聚高耦合
D、高内聚高耦合
(  C  )
17、以下不正确的if 语句形式是________。
A、if (x>y&&x!=y);
B、if (x==y) x+=y;
C、if(x!=y) scanf("%d",&x) else scanf("%d",&y);
D、if(x<y) {x++;y++;}
(  A  )
18、一个变量的指针就是________。
A、变量的地址
B、变量的值
C、变量的名称
D、变量的类型
(  C  )
19、不能正确表示a*b/c*d 的c 语言表达式是________。
A、a*b/c*d
B、a/(c*d)*b
C、a*b/c/d
D、a*b/(c*d)
(  C  )
20、以下描述中,正确的是()。
A、预处理是指完成宏替换和文件包含中指定的文件的调用
B、预处理指令只能位于 C 源文件的开始
C、C 源程序中凡是行首以#标识的控制行都是预处理指令
D、预处理就是完成 C 编译程序对 C 源程序第一遍扫描,为编译词法和语法分析作准备

二、控制结构 (共10题,每题1分,共计10分)

(  C  )
1、在嵌套使用if语句时,c语言规定else总是________。
A、和之前与其具有相同缩进位置的if配对
B、和之前与其最近的if配对
C、和之前与其最近的且不带else的if配对
D、和之前的第一个if配对
(  A  )
2、有如下程序:
main ()
{
int x = 1, a = 0, b = 0;
switch (x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++;
b++;
}
printf ("a = %d, b = %d\n", a, b);
}
该程序的输出结果是________。
A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2 b=2
(  B  )
3、c语言对嵌套if语句的规定是:else总是与( ) 。
A、其之前最近的if配对
B、其之前最近的且尚未配对的if配对
C、缩进位置相同的if配对
D、第一个if配对
(  C  )
4、有以下程序
main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf("%c",&k);
switch(k)
{
case ‘0’: printf("another\n");
case ‘1’: printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是________。
A、another
number
B、another
number
another
C、another
number
number
D、number
number
(  C  )
5、若a的值为3时,下列程序段被执行后,c的值是________。
int c = 1;
if (a>0) if (a>3) c = 2;
else c = 3;
else c = 4;
A、1
B、2
C、3
D、4
(  A  )
6、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
A、可以是任意合法的表达式
B、必须是逻辑表达式
C、必须是逻辑表达式或关系表达式
D、必须是关系表达式
(  A  )
7、有如下程序
main()
{
int x=1,a=5,b=5;
switch(x)
{
case 0: b--;
case 1: a--;
case 2: a--;
b--;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是______。
A、a=3,b=4
B、a=3,b=3
C、a=4,b=5
D、a=4,b=4
(  A  )
8、c语言的if语句中,用作判断的表达式为____
A、任意表达式
B、逻辑表达式
C、关系表达式
D、算术表达式
(  A  )
9、c 语言中逻辑表达式的值为________。
A、0 或1
B、非零值或零值
C、true 或false
D、'true'或'false'
(  D  )
10、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达
式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
A、-1
B、1
C、非零的数
D、0

三、循环结构 (共10题,每题1分,共计10分)

(  D  )
1、以下叙述中正确的是________。
A、do-while语句构成的循环不能用其他语句构成的循环来代替
B、do-while语句构成的循环只能用break语句退出
C、用do-while语句构成循环时,只有在while后的表达式为非零时结束循环
D、用do-while语句构成循环时,只有在while后的表达式为零时结束循环
(  B  )
2、下列程序的运行结果是________。
void main()
{
int s=0,k;
for(k=7;k>1;k--)
{
switch(k)
{
case 1: case 4: case 7: s++: break;
case 2: case 3: case 6:break;
case 0: case 5: s+=2: break;
}
}
printf("s=%d",s);
}
A、s=3
B、s=4
C、s=5
D、无输出结果
(  D  )
3、有以下程序:
main()
{
int i,n=0: for(i=2;i<5;i++)
{
do
{
if(i%3) continue: n++;
}
while(!i);
n++;
}
printf("n=%d\n",n);
}
程序执行后输出结果是________。
A、n=5
B、n=2
C、n=3
D、n=4
(  B  )
4、下述 for 循环语句 。
int i,k;
for(i=0,k=-1;k=1;i++,k++)
printf("* * * *");
A、判断循环结束的条件非法
B、是无限循环
C、只循环一次
D、一次也不循环
(  C  )
5、下面程序段中 , 循环体的执行次数是 ___________.
int a=10,b=0;
do
{
b+=2;
a-=2+b;
}
while(a>=0);
A、4
B、5
C、3
D、2
(  D  )
6、有以下程序:
#include<stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%5)==0)break;
else i--;
}
i+=13,a+=i;
}
printf("%d\n",a);
}
程序的输出结果是________。
A、62
B、63
C、23
D、36
(  C  )
7、有以下程序
main() {
int i;
for(i=0;i<3;i++)
switch(i) {
case 0: prinft("%d",i);
case 2: prinft("%d",i);
default:prinft("%d",i);
}
}
程序运行后的输出结果是________。
A、022111
B、021021
C、000122
D、012
(  B  )
8、有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是______。
A、y=0
B、y=-1
C、y=1
D、while
(  A  )
9、下面说法正确的是________。
A、结构化程序的基本结构有三种,分别是循环结构、选择结构和顺序结构
B、计算机只能执行顺序结构的 C 语言源程序
C、循环结构无法使用 N-S 流程图描述
D、一般称含有 20 条以内语句的算法为简单算法,超过 20 条则不可能是简单算法
(  B  )
10、以下程序的执行结果是 main()
{ int x = 0, s = 0;
while( !x != 0 ) s += ++x;
printf( "%d ",s ); }
A、0
B、1
C、语法错误
D、无限循环

四、数组/指针数组 (共10题,每题1分,共计10分)

(  D  )
1、以下对一维数组a的正确说明是________。
A、char a(10);
B、int a[];
C、int k=5,a[k];
D、char a[3]={‘a’,’b’,’c’};
(  D  )
2、以下函数返回a所指数组中最小的值所在的下标值:
fun(int *a,int n)
{
int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]) ______,
return(p);
}
在横线处应填入的是______。
A、i=p
B、a[p]=a[i]
C、p=j
D、p=i
(  A  )
3、在数制的转换中,正确的叙述是______。
A、对于相同的十进制整数(>1),其转换结果的位数的变化趋势随着基数E的增大而减少
B、对于相同的十进制整数(<1),其转换结果的位数的变化趋势随着基数E的增大而增加
C、不同数制的数字符是各不相同的,没有一个数字符是一样的
D、对于同一个整数值的二进制数表示的位数一定大于十进制数字的位数
(  C  )
4、下列哪个语句是声明一个含有10个string对象的数组 ( )
A、char str[];
B、char str[][];
C、String str[]=new String[10];
D、String str[10];
(  D  )
5、下述程序的输出结果是________。
#include<stdio.h>
void main()
{
int a[5]={1,2,3,4,5};
int*p=a,**q=&p;
printf("%d",*(p++));
printf("%d",**q);
}
A、22
B、11
C、34
D、12
(  A  )
6、设有数组定义:char array[]="china"; 则数组array所占的空间为________。
A、6字节
B、5字节
C、4字节
D、7字节
(  A  )
7、以下叙述中正确的是______。
A、不能用字符串常量对字符数组名进行整体赋值操作
B、字符串常量"Hello"会被隐含处理成一个无名字符型数组,它有5个元素
C、char str[7]="string!";在语法上是合法的,运行也是安全的
D、char *str;str="Hello";与char str[];str="Hello";效果是一样的
(  A  )
8、以下选项中,不能正确赋值的是 ______。
A、char s1[10];s1="chest";
B、char s2[]='C','t','e','s','t';
C、char s3 [20]="Chest";
D、char * s4="Cest\n"
(  B  )
9、int (*p)[6]; 它的含义为________。
A、具有6个元素的一维数组
B、定义了一个指向具有6个元素的一维数组的行指针变量
C、指向整型指针变量
D、指向6个整数中的一个的地址
(  D  )
10、若有以下的定义:int t[3][2];
能正确表示t数组元素地址的表达式是________。
A、&t[3][2]
B、t[3]
C、&t[1]
D、t[2]

五、字符串/字符串指针 (共10题,每题1分,共计10分)

(  B  )
1、下列数据中为字符串常量的是________。
A、'A'
B、"9"
C、How do you do
D、'$abd'
(  A  )
2、以下不能正确进行字符串赋初值的语句是________。
A、char str[5]="good!";
B、char str[]="good!";
C、char *str="good!";
D、char str[5]={‘g',‘o',‘o',‘d'};
(  A  )
3、下列四组字符串中都可以用作c语言程序中的标识符的是________。
A、print _3d db8 aBc
B、I\am one_half start$it 3pai
C、str_1 Cpp pow while
D、Pxq My->book line# His.age
(  B  )
4、设宏定义#define PI 3.1415926,用宏名PI替换的是________。
A、算术表达式
B、字符串
C、单精度实型数
D、双精度实型数
(  A  )
5、下列合法的字符型常量是________。
A、'\x13'
B、'\081'
C、'65'
D、"\n\
(  C  )
6、顺序执行下列程序语句后,则b的值是 string a="hello"; string b=a.substring(0,2);
A、Hello
B、hello
C、He
D、null
(  B  )
7、宏定义用于将一个标识符定义为一个
A、常量
B、字符串
C、整数
D、长整数
(  C  )
8、若有定义: char str1[10] = "aaaaaaa";
char str2[10] = "bbbbb";
将字符串str2连接到str1,则下列描述中正确的是________。
A、strcat(str1,str2)可以将字符串str2连接到str1中
B、strncat(str1,str2,strlen(str2))可以将字符串str2连接到str1中
C、strncat(str1,str2,2)可以将字符串str2的前两个字符连接到str1中
D、strncat(str1,str2,4)可以将字符串str2的前四个字符连接到str1中
(  A  )
9、下面不正确的字符串常量是________。
A、'abc'
B、"12'12"
C、"0"
D、" "
(  B  )
10、字符串指针变量中存入的是________。
A、字符串
B、字符串的首地址
C、第一个字符
D、字符串变量

六、函数/函数指针 (共10题,每题1分,共计10分)

(  C  )
1、c语言规定,函数返回值的类型是由( )决定的。
A、return语句中的表达式类型
B、调用该函数时的主调函数类型
C、在定义函数时所指定的函数类型
D、调用该函数时由系统临时
(  D  )
2、若有以下函数首部: int fun(double x[10],int *n) 则下面针对此函数的函数声明语句中正确的是________。
A、int fun(double x, int *n);
B、int fun(double, int);
C、int fun(double *x, int n);
D、int fun(double*, int*);
(  C  )
3、若有以下调用语句,则不正确的fun函数的首部是________。
main() {
…
int a[50],n;
…
fun(n, &a[9]);
…
}
A、void fun(int m,int x[])
B、void fun(int s,int h[4])
C、void fun(int p, int *s)
D、void fun(int n,int x)
(  C  )
4、c语言中,可用于说明函数的是________。
A、auto或static
B、extern或auto
C、static或extern
D、auto或register
(  A  )
5、以下正确的函数头定义形式是________。
A、double fun(int x,int y)
B、double fun(int x;int y)
C、double fun(int x,int y);
D、double fun(int x,y);
(  C  )
6、下列叙述中错误的是________。
A、主函数main也可以带形参
B、函数中通过return返回函数值
C、调用函数必须在一条独立的语句中完成
D、一个函数中可以有多条return语句
(  D  )
7、以下叙述不正确的是_____。
A、分号是C语言的必要组成部分
B、C程序的注释可以写在句的后面
C、函数是C程序的基本单位
D、主函数的名字不一定用main表示
(  C  )
8、以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。
#include <string.h>
void f(char p[][10],int n)
{
char t[20];
int i,j;
for(i=0;i<n-1;i++)
for (j=i+1;j<n;j++)if(strcmp(p[i],p[j])<0)
{
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
}
main()
{
char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是______。
A、6
B、4
C、5
D、3
(  A  )
9、在c语言中,当内部函数与外部函数重名时,下列描述中正确的是________。
A、当调用时,会调用内部函数
B、当调用时,会调用外部函数
C、当调用时,会调用两次,先调用内部函数再调用外部函数
D、都不调用,会报错
(  C  )
10、以下叙述中不正确的是________。
A、一个变量的作用域完全取决于变量定义语句的位置
B、全局变量可以在函数以外的任何部位进行定义
C、局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用
D、一个变量说明为static存储类别是为于限制其它编译单位的引用

七、指针 (共10题,每题1分,共计10分)

(  C  )
1、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
A、gets(s);
B、while((s[i++]=getchar())!=‘\n’);s[i]=‘\0’;
C、scanf(“%s”,s);
D、do{ scanf(“%c”,&s[i]); } while(s[i++]!=‘\n’); s[i]=‘\0;
(  C  )
2、下面各语句行中,能正确进行字符串赋值操作的语句是______。
A、char ST[5]={"ABCDE"} ;
B、char S[5]={'A' , 'B' , 'C' , 'D' , 'E'} ;
C、char *S ; S="ABCDE" ;
D、char *S ; scanf ( "%S" , S );
(  B  )
3、若有说明int a[3][4]; 则a数组元素的非法引用是________。
A、123
B、2.5
C、-12
D、1563
(  D  )
4、已知3个字符为:a、z和8,按它们的ascii码值升序排序,结果是________。
A、8,a,Z
B、a,8,Z
C、a,Z,8
D、8,Z,a
(  C  )
5、有以下程序
int add(int a,int b)
{
return(a+b);
}
main()
{
int k,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是______。
A、k=(*f)(a,b);
B、k=add(a,;
C、k=*f(a,b);
D、k=f(a,b);
(  C  )
6、有定义语句:int*p[4]; 以下选项中与此语句等价的是________。
A、int p[4];
B、int **p;
C、int*(p[4]);
D、int(*p)[4];
(  A  )
7、有函数char fun(char *p) { return p; } 该函数的返回值是________。
A、编译出错
B、形参p中存放的地址值
C、一个临时存储单元的地址
D、形参p自身的地址值
(  C  )
8、在c语言中,( )
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义和调用均不可以嵌套
C、函数的定义不可以嵌套,但函数的调用可以嵌套
D、函数的定义和调用均可以嵌套
(  C  )
9、假定double类型变量占用8个字节,且数组定义如下,则数组length在内存中所占字节数是________。double length [10];
A、0
B、10
C、80
D、160
(  B  )
10、以下能正确定义一维数组的选项是________。
A、int num[]
B、int num[N]
C、int num[0..100]
D、int N=100;

八、结构体 (共10题,每题1分,共计10分)

(  A  )
1、有以下程序
struct stu
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct stu s[2]={{"sundan",20044},{"penghua",20045}};
num = s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
程序运行后的输出结果是________。
A、SunDan 20042
B、SunDan 20044
C、LiSiGuo 20042
D、YangSan 20041
(  A  )
2、有以下程序
#include <studio.h>
#include <string.h>
struct a
{
int a;
char b[10];
double c;
};
void f(struct a t);
main()
{
struct a a={1001,"zhangda",1098.0};
f(a);
pringt("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct a t)
{
t.a=1002;
strcpy(t.b,"changrong");
t.c=1202.0;
}
程序运行后的输出结果是________。
A、1001,ZhangDa,1098.0
B、1002,ChangRong,1202.0
C、1001,ChangRong,1098.0
D、1002,ZhangDa,1202.0
(  D  )
3、有以下定义和语句
struct workers
{
int num;
char name[20];
char c;
srruct
{
int day;
int month;
int year;
}
s;
};
struct workers w,*pw;
pw=&w 能给w 中year 成员赋1980 的语句是________。
A、*pw.year=1980;
B、w.year=1980;
C、pw->year=1980;
D、w.s.year=1980;
(  C  )
4、若定义下列结构体,结构体变量p的出生年份赋值正确的语句是________。
struct st
{
int x;
int y;
int z;
}
struct worker
{
char name[20];
char sex;
struct st birth;
} p;
A、x=1987
B、birth.x=1987;
C、p.birth.x=1987;
D、x=1987;
(  A  )
5、有以下程序
struct s
{
int n;
int a[20];
};
void f(int *a,int n)
{
int i;
for(i=0;i<n-1;i++)a[i]+=i;
}
main()
{
int i;
struct s s={10,{ 2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0; i<s.n; i++)printf("%d,",s.a[i]);
}
程序运行后的输出结果是________。
A、2,4,3,9,12,12,11,11,18,9,
B、3,4,2,7,9,8,6,5,11,10,
C、2,3,1,6,8,7,5,4,10,9,
D、1,2,3,6,8,7,5,4,10,9,
(  B  )
6、下列程序的输出结果是________。
#include <stdio.h>
struct abc
{
int a, b, c, s;
} ;
main ()
{
struct abc s[2] = { {1, 2, 3}, {4, 5, 6} };
int t;
t = s[0].a + s[1].b;
printf ("%d\n", t);
}
A、5
B、6
C、7
D、8
(  D  )
7、若有下面的说明和定义,则sizeof(struct aa)的值是______。
struct aa
{
int r1;
double r2;
float r3;
}
maya;
A、20
B、18
C、14
D、16
(  B  )
8、以下对枚举类型名的定义中正确的是________。
A、enum a={sum,mon,tue};
B、enum a {sum=9,mon=-1,tue};
C、enum a={"sum","mon","tue"};
D、enum a {"sum","mon","tue"};
(  A  )
9、在下列程序段中,枚举变量c1,c2的值依次是________。
enum color
{
red,
yellow,
blue=4,
green,
white
}
c1,c2;
c1=yellow;
c2=white;
printf("%d,%d\n",c1,c2);
A、1,6
B、2,5
C、1,4
D、2,6
(  B  )
10、相同结构体类型的变量之间,可以________。
A、相加
B、赋值
C、比较大小
D、地址相同

九、程序题 (共10题,每题1分,共计10分)

(  B  )
1、若有以下程序段: int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%a",a,b,c);执行后的输出结果是________。
A、3,0,-10
B、0,0,5
C、-10,3,-10
D、3,0,3
(  C  )
2、下列程序的输出结果是________。
int a[5]= { 2,4,6,8,10 } ,*p,**k;
p=a;
k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
A、4 4
B、2 2
C、2 4
D、4 6
(  D  )
3、有以下程序
#include <stdio.h>
main()
{
int a=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);
}
程序运行后的输出结果是________。
A、0,0
B、1,0
C、3,2
D、1,2
(  B  )
4、有以下程序
main()
{
int x[8]={8,7,6,5,0,0},*s;
s=x+3;
printf("%d\n",s[2]);
}
执行后输出结果是________。
A、随机值
B、0
C、5
D、6
(  D  )
5、有如下程序
main( )
{
int a[3][3]={{1,2,3},{3,4,5},{5,6,7}}, i,j,s = 0;
for(i=0; i<3; i++)for(j=0; j<=i; j++) s+=a[i][j]];
printf("%d\n",s);
}
该程序的输出结果是______。
A、18
B、19
C、36
D、26
(  B  )
6、下面程序的输出结果是______。
main( )
{
int b[]={1,2,3,4,5,6,7,8,9,0},*q;
q=b;
printf("%d\n",*(q+0));
}
A、0
B、1
C、10
D、9
(  B  )
7、以下程序的输出结果是______。
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+1];
for(i=0;i<3;i++) k+=p[i];
printf("%d\n",k);
}
A、10
B、11
C、12
D、13
(  B  )
8、下列程序段的执行结果是输出________。
x=3;
do {
printf("%2d",x--);
} while(!x);
A、3 2 1
B、3
C、2 1
D、2 1 0
(  C  )
9、若有以下程序片段: char str[ ]="ab\n\012\\\"";
printf("%d",strlen(str));
上面程序片段的输出结果是________。
A、3
B、4
C、6
D、12
(  B  )
10、下列程序运行结果为:
#define P 3
#define S(a) P*a*a
main()
{int ar;
ar=S(3+5);
printf("\n%d",ar);
}
A、192
B、29
C、27
D、25