山东中医药大学往年计算机C语言期末

本试卷为山东中医药大学往年计算机C语言期末,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

计算机C语言期末

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

(  B  )
1、在执行完下列的c语句段之后,则b的值是________。 char a='a'; int b; b=((34&&56)&&(a<'b'));
A、0
B、1
C、TRUE
D、FALSE
(  B  )
2、数据的存储结构是指________。
A、数据所占的存储空间
B、数据的逻辑结构在计算机中的存放形式
C、数据在计算机中的顺序存储方式
D、存储在计算机外存中的数据
(  C  )
3、执行语句"x=(a=3,b=a--)"后,x,a,b的值依次为________。
A、3, 3, 2
B、3,2,2
C、3,2,3
D、2,3,2
(  C  )
4、下面正确的字符常量是________。
A、“d”
B、‘\\’’
C、‘D’
D、‘’
(  C  )
5、以下四项中属于c语言关键字的是________。
A、CHAR
B、define
C、unsigned
D、return
(  A  )
6、下列四组常数中,均是合法整型常量的一组是________。
A、160 0xffff 011
B、-0xcdf 01a 0xe
C、-01 986,012 0668
D、-0x48a 2e5 0x
(  D  )
7、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是________。
A、0
B、2
C、1.5
D、1
(  B  )
8、与十六进制数200等值得十进制数为________。
A、256
B、512
C、1024
D、2048
(  A  )
9、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。
A、++X,Y=X--
B、X+1=Y
C、X=X+10=X+Y
D、double(X)/10
(  D  )
10、以下都是c语言标识符的是________。
A、dsfa,df4,f$
B、huhj,a^,k2
C、3k,h,j_9
D、_ok,jk,k8
(  B  )
11、以下叙述正确的是________。
A、可以把define和if定义为用户标识符
B、可以把define定义为用户标识符,但不能把if定义为用户标识符
C、可以把if定义为用户标识符,但不能把define定义为用户标识符
D、define和if都不能定义为用户标识符
(  C  )
12、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为______。
A、4
B、16
C、32
D、52
(  B  )
13、要表达出数学关系19 ≥ x ≥ 0,c语言中应使用表达式( )
A、(x>=0) AND (x≤19)
B、(x>=0) && (x<=19)
C、(x>=0) || (x<=19)
D、(19 ≥ x ≥ 0)
(  B  )
14、下列各语句序列中,能够将变量u.s 中最大值赋值到变量t 中的是________。
A、if(u>s)t=u; t=s;
B、t=s; if(u>s)t=u;
C、if(u>s)t=s; else t=u;
D、t=u; if(u>s)t=s;
(  B  )
15、设有int x,y;
以下语句判断x和y是否相等,正确的说法是该语句________。if (x=y) printf("" x is equal to y."");
A、语法错
B、不能判断x和y是否相等
C、编译出错
D、能判断x和y是否相等
(  A  )
16、下面选择中正确的赋值语句是(设char a[5],*p=a;)________。
A、p="abcd";
B、a="abcd";
C、*p="abcd";
D、*a="abcd";
(  D  )
17、以下叙述正确的是________。
A、在C程序中,每行中只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C、C程序中,无论是整数还是实数,都能被准确无误地表示
D、在C程序中,%是只能用于整数运算的运算符
(  B  )
18、表达式10!=12的值是________。
A、0
B、1
C、true
D、非零值
(  C  )
19、下列选项中,不正确的赋值语句是_______
A、++t;
B、n1=(n2=(n3=0));
C、k=1=j;
D、a=b+c=1;
(  A  )
20、C语言中,char 类型数据占()。
A、1 个字节
B、2 个字节
C、4 个字节
D、8 个字节

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

(  D  )
1、若int i=10;
执行下列程序后,变量i的正确结果是________。 switch (i)
{
case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
A、10
B、11
C、12
D、13
(  C  )
2、若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
(  C  )
3、执行以下程序段后,w的值为________。
int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
A、-1
B、NULL
C、1
D、0
(  A  )
4、switch语句不能用于下列哪种数据类型 ( )
A、double
B、byte
C、short
D、char
(  A  )
5、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
A、1
B、3
C、2
D、4
(  C  )
6、下列程序的输出结果是______。
#include<stdio.h>
main()
{
int a=0,b=1,c=2;
if(++a>0 || ++b>0) ++c;
printf("%d,%d,%d",a,b,c);
}
A、0,1,2
B、1,2,3
C、1,1,3
D、1,2,2
(  A  )
7、选择出合法的if语句(设int x,a,b,c;)________。
A、if(a=b) x++;
B、if(a=<b) x++;
C、if(a<>b) x++;
D、if(a=>b) x++;
(  D  )
8、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
A、只能用逻辑表达式
B、只能用关系表达式
C、只能用逻辑表达式或关系表达式
D、可用任意表达式
(  A  )
9、c语言的if语句嵌套时,if与else的配对关系是________。
A、每个else总是与它上面的最近的并且尚未与其他else匹配的if配对
B、每个else总是与最外层的if配对
C、每个else与if的配对是任意的
D、每个else总是与它上面的if配对
(  C  )
10、结构化程序设计所规定的三种基本控制结构是()。
A、输入、处理、输出
B、树形、网形、环形
C、顺序、选择、循环
D、主程序、子程序、函数

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

(  C  )
1、若有以下程序段,w和k都是整型变量:
w=k;
LB:if(w==0)
goto LE;
w--;
printf("*") goto LB;
LE;
则不能与上面程序段等价的循环语句是________。
A、for(w=k;w!—0;w--)printf(”*”);
B、for(w=k;W;--w)printf(”*”);
C、w=k;
while(w--!=O)printf(”*”);
D、w=k:
W++;do
{
w--;printf(”*”);)while(w!=O);
(  D  )
2、以下程序的输出结果是
main( )
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if (b>=10) break;
if (b%5==1)
{
b+=5;
continue;
}
}
printf("%d\n",a);
}
A、101
B、6
C、4
D、3
(  D  )
3、有以下程序
#include <stdio.h>
main()
{
int x=8;
for( ; x>0; x--)
{
if(x%3)
{
printf("%d,",x--);
continue;
}
printf("%d,",--x);
}
}
程序的运行结果是________。
A、7,4,2
B、8,7,5,2
C、9,7,6,4
D、8,5,4,2
(  C  )
4、运行下面程序时,若从键盘输入数据为 "123" , 则输出结果是 _________.
#include "stdio.h"
void main()
{
int num,i,j,k,place;
scanf("%d",&num);
if (num>99) place=3;
else if(num>9) place=2;
else place=1;
i=num/100;
j=(num-i*100)/10;
k=(num-i*100-j*10);
switch (place)
{
case 3: printf("%d%d%d\n",k,j,i);
break;
case 2: printf("%d%d\n",k,j);
break;
case 1: printf("%d\n",k);
}
}
A、123
B、1,2, 3
C、321
D、3,2,1
(  A  )
5、若i、j已定义为int型,则以下程序段中内循环的总的执行次数是________。 for(i=5;i>0;i--) for(j=0;j<4;j++)…
A、20
B、24
C、25
D、30
(  B  )
6、有如下程序
#define N 3
#define M N+2
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是______。
A、5
B、9
C、7
D、8
(  B  )
7、有以下程序
main( )
{
int c=5,x;
scanf("%d",&x);
switch(x+1)
{
case 6: c++;
case 8: ++c;
break;
default:c+=3;
}
printf("%d",c);
}
程序运行时,从键盘输入: 5<回车>,程序执行后的输出结果是________。
A、6
B、7
C、8
D、语法错
(  D  )
8、以下叙述中正确的是________。
A、while 循环的循环体至少执行 1 次
B、while 循环的循环控制条件比 do-while 循环的循环控制条件复杂
C、do-while 循环体不能是复合语句
D、do-whil 循环的循环体至少执行 1 次
(  D  )
9、以下叙述正确的是()。
A、do-while 语句构成的循环不能用其它语句构成的循环来代替.
B、do-while 语句构成的循环只能用 break 语句退出.
C、用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环.
D、用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环
(  C  )
10、以下程序段中,能够正确地执行循环的是()。
A、for(i=1;i>10;i++)
B、static int a;while(a)
C、int s=6; do s-=2; while(s);
D、int s=6;m:if(s<100)exit(0);else s-=2;goto m:

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

(  D  )
1、若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素的引用不正确的是________。
A、a[p-a]
B、*(&a[i])
C、p[i]
D、*(*(a十i))
(  C  )
2、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
A、printf("%s%s",s1[5],s2[7]);
B、printf("%c%c",s1,s2);
C、puts(s1);puts(s2);
D、puts(s1,s2);
(  C  )
3、以下一维数组 a 的正确定义是 __________ .
A、int n=10,a[n];
B、int n;
C、#define SIZE 10
scanf("%d",&n); int a[SIZE];
int a[n];
D、int a(10);
(  B  )
4、以下能对二维数组a进行正确初始化的语句是________。
A、int a[2][]={{(1,0,1},{5,2,3}};
B、int a[][3]={{1,2,3},{ 4,5,6}};
C、int a[2][4]={{ 1,2,3},{ 4,5},{6}};
D、int a[][3]={{1,0,1},{},{1,1}};
(  C  )
5、下列程序段的功能是________。计算数组x中相邻两个元素的和,依次存放到 a 数组中,然后输出a数组。程序段中待填空的(1)和(2)的正确选项是________。int i;
int a[9], x[10];
for(i = 0; i < 10; i++)
{
scanf("%d", &x[i]);
}
for( (1) ; i < 10; i++ )
{
/* 此处待填空(1) */ a[i-1] = x[i] + (2) ;
/* 此处待填空(2) */
}
for(i = 0; i < 9; i++)
{
printf("%d ",a[i]);
}
printf("\n");
A、(1) i = 1 (2) x[i+1]
B、(1) i = 0 (2) x[i-1]
C、(1) i = 1 (2) x[i-1]
D、(1) i = 0 (2) x[i+1]
(  B  )
6、c语言中,数组名代表________。
A、数组全部元素的值
B、数组首地址
C、数组第一个元素的值
D、数组元素的个数
(  B  )
7、下面的C程序完成的功能是________。
#define SIZE 5
void func(int data[SIZE]);
main()
{
int i,buf[SIZE];
printf(""Please input %d numbers:"",SIZE);
for(i=0;idata[j+1])
{
d=data[j];
data[j]=data[j+1];
data[j+1]=d;
}
}
A、对一维数组降序排序
B、对一维数组升序排序
C、对一维数组逆向排序
D、对一维数组顺序排序
(  A  )
8、下面说法正确的是________。
A、char *x,y,**str 同时定义了三个变量,符合语法规范
B、数组说明符的一对方括号中只能使用常量数值
C、单精度浮点值也可以作为数组下标
D、若有定义 float arr[2]则 printf("%2.1f", array[0.5])是合法的语句
(  C  )
9、在以下定义中,标识符p________。 int (*p)[3];
A、定义不合法
B、是一个指针数组名,每个元素是一个指向整数变量的指针
C、是一个指针,它指向一个具有三个元素的一维数组
D、是一个指向整型变量的指针
(  A  )
10、若有如下定义和语句,且 0<=i<5,下面( )是对数值为 3 数组元素的引用
int a[]={1,2,3,4,5},*p,i;
p=a;
A、*(a+2)
B、a[p-3]
C、p+2
D、a+3

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

(  C  )
1、以下叙述中不正确的是________。
A、空字符串(即两个双引号连写)只占一个存储单元
B、字符型常量可以放在字符型变量中
C、字符型常量可以放在字符串变量中
D、字符型常量可以与整数混合运算,而字符串常量不可以
(  D  )
2、以下正确的字符串常量是________。
A、“╲╲╲”
B、‘abc’
C、Olympic
D、**
(  A  )
3、下列哪个是c语言的有效标识符
A、_Nol
B、No.1
C、12345
D、int
(  C  )
4、下面程序段的运行结果是 char *s="abcde"; s+=2; printf("%d",s);
A、cde
B、字符'c'
C、字符'c'的地址
D、无确定的输出结果
(  B  )
5、字符串"xyz"在内存占用的字节数是______。
A、3
B、4
C、6
D、8
(  C  )
6、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
A、char st[4][5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s="ABCDE";
D、char *s; scanf("%s",*s);
(  D  )
7、以下选项中,合法的 c 语言常量是________。
A、2XY
B、HELLO'
C、"\0.\0
D、1.0
(  A  )
8、以下正确的字符串常量是________。
A、"\\"
B、'abc'
C、OlympicGames
D、'A'
(  A  )
9、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
char x[]="programming";
char y[]="fortran";
int i=0;
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i]) printf("%c", _____);
else i++;
A、x[i++]
B、y[++i]
C、x[i]
D、y[i]
(  C  )
10、判断两个字符串是否相等,正确的表达方式是
A、s1==s2
B、s1=s2
C、strcmp(s1,s2)==0
D、strcmp(s1,s2)=0

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

(  B  )
1、下列关于c语言的说法错误的是________ 。
A、C程序的工作过程是编辑、编译、连接、运行
B、C语言不区分大小写。
C、C程序的三种基本结构是顺序、选择、循环
D、C程序从main函数开始执行
(  B  )
2、以下函数调用语句中含有_______个实参。 func((exp1,exp2),(exp3,exp4,exp5));
A、1
B、2
C、4
D、5
(  C  )
3、下列叙述中错误的是________。
A、主函数main也可以带形参
B、函数中通过return返回函数值
C、调用函数必须在一条独立的语句中完成
D、一个函数中可以有多条return语句
(  A  )
4、关于宏定义命令,叙述正确的是________。
A、在程序编译前进行宏替换
B、在程序编译时进行宏替换
C、在程序编译后进行宏替换
D、在程序运行时进行宏替换
(  A  )
5、有以下程序:
main()
{
int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<8;i++) printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是________。
A、75310246
B、01234567
C、76310462
D、13570246
(  D  )
6、判断字符串s1是否大于字符串s2,应当使用 。
A、if (s1>s2)
B、if (strcmp(s1,s2))
C、if (strcmp(s2,s1)>0)
D、if (strcmp(s1,s2)>0)
(  C  )
7、有关c语言的主函数描述正确的是________。
A、C程序可以有多个main函数
B、C程序可以没有main函数
C、C程序有且只有一个main函数
D、C程序不一定从main函数开始执行
(  A  )
8、以下说法错误的是________。
A、由三种基本结构组成的结构化程序不能解决过于复杂的问题
B、由三种基本结构组成的结构化程序能解决些简单的问题
C、由三种基本结构组成的结构化程序能解决递归问题
D、由三种基本结构组成的结构化程序能解决数学上有解析解的问题
(  D  )
9、c语言函数的隐含存储类别是________。
A、static
B、auto
C、register
D、extern
(  C  )
10、以下叙述中错误的是________。
A、C语言是一种结构化程序设计语言
B、结构化程序由顺序、分支、循环三种基本结构组成
C、使用三种基本结构构成的程序只能解决简单问题
D、结构化程序设计提倡模块化的设计方法

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

(  C  )
1、以下叙述错误的是________。
A、一个C程序可以包含多个不同名的函数
B、一个C程序只能有一个主函数
C、C程序在书写时,有严格的缩进要求,否则不能编译通过
D、C程序的主函数必须用main作为函数名
(  C  )
2、下面说法正确的是________。
A、一个C程序可以有多个主函数
B、一个C语言的函数中只允许有一对花括号
C、C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
D、在对C程序进行编译时,可以发现注释行中的拼写错误
(  C  )
3、下列哪个语句是声明一个含有10个string对象的数组 ( )
A、char str[];
B、char str[][];
C、String str[]=new String[10];
D、String str[10];
(  B  )
4、若有函数 char*func(char *p) … return p; 则该函数的返回值是 ______。
A、无确切的值
B、形参p中存放的地址
C、一个临时存储单元的地址
D、形参p自身的地址
(  C  )
5、以下能将字符串,you are luck!正确读入的语句组是________。
A、char s[80]; scanf("%s",s);
B、char *s: scanf("%s",s);
C、char s[80]; gets(s);
D、char *s; gets(3);
(  C  )
6、以下程序的输出结果是
typedef union {
long x[2];
int y[4];
char z[8];
} mytype;
mytype them;
main() {
printf("%d\n",sizeof(them));
}
A、32
B、16
C、8
D、24
(  D  )
7、下列字符串中可以用作c标识符的是________。
A、2009var
B、goto
C、test-2009
D、-123
(  A  )
8、通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是________。
A、利用返回值数据传递方式
B、利用形参与实参传递数据的方式
C、利用全局变量传递数据的方式
D、以上都不对
(  C  )
9、printf 函数中用到格式符%5s ,其中数字5 表示输出的字符串占用5 列。如果字符串长度小于5,则输出按方式。
A、从左起输出该字串,右补空格
B、按原字符长从左向右全部输出
C、右对齐输出该字串, 左补空格
D、输出错误信息
(  A  )
10、设有定义:int x=2,*p=&x; float=3.0; char z='c'; 则立即进行以下运算有安全隐患的是________。
A、p++
B、x++
C、y++
D、z++

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

(  B  )
1、下列程序的输出结果是________。
main()
{
struct st
{
int y,x,z;
}
;
union
{
long i;
int j;
char k;
}
un;
printf("%d,%d\n",sizeof(struct st),sizeof(un))
}
A、6,2
B、6,4
C、8,4
D、8,6
(  D  )
2、有如下定义
struct person
{
char name[9] ;
int age ;
};
struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16};
根据上述定义,能输出字母 m 的语句是______。
A、prinft ( " %c\n" , class[3].name );
B、printf ( " %c\n" , class[3].name[1] );
C、prinft ( " %c\n" , class[2].name[1] );
D、printf ( " %c\n" , class[2].name[0] );
(  B  )
3、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu
{
int i;
int name;
} st,*p;
p=&st;
A、si
B、*i
C、(*.i
D、p->i
(  C  )
4、设
struct data
{
int a;
float b;
} c,*p=&c;
,引用正确的是________。
A、*p.a
B、p.b
C、p->a
D、*p->b
(  C  )
5、变量a所占的内存字节数是______。
union u{
char st[4];
int i;
long l;
};
struct A {
int c;
union u;
} a;
A、4
B、5
C、6
D、8
(  A  )
6、c语言中用于定义类的关键字是________。
A、class
B、struct
C、default
D、sizeof
(  B  )
7、有以下程序:
struct stu
{
char num[10];
float score[3];
};
main()
{
struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++ ){
sum=sum+p->score[i];
}
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
A、260
B、270
C、280
D、285
(  D  )
8、有以下程序
#include <stdio.h>
main()
{
struct stu
{
char name[9];
char sex;
double score[2];
}
;
struct stu a={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m,85,90
(  A  )
9、定义共用体的关键字是________。
A、union
B、enum
C、struct
D、typedef
(  A  )
10、结构体类型的定义允许嵌套是指()。
A、成员是已经或正在定义的结构体型
B、成员可以重名
C、结构体型可以派生
D、定义多个结构体型

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

(  D  )
1、以下程序的输出结果是________。
main( )
{
int x=11,y=11;
printf("%d%d\\n",x--,--y);
}
A、11,11
B、10,10
C、10,11
D、11,10
(  D  )
2、阅读下面的程序
#include<stdio.h>
main()
{
char c1,c2;
c1=getchar();
c2=c1+3;
printf("%c,%d\n",c2,c2);
}
已知'a'的ascii的值为65,如果从键盘上输入 d<回车> 则程序的运行结果是________。
A、D,68
B、'G',68
C、D,71
D、G,71
(  C  )
3、有以下程序
void f(int v , int w)
{
int t;
t=v;
v=w;
w=t;
}
main( )
{
int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后输出结果是________。
A、1,2,3
B、3,1,2
C、1,3,2
D、2,3,1
(  B  )
4、下面程序是计算 n 个数的平均值 , 请填空 . _________
#include<stdio.h>
void main( )
{
int i,n;
float x,avg=0.0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%f",&x);
avg=avg+______;
}
avg=________;
printf("avg=%f\n",avg);
}
A、i avg/i
B、x avg/n
C、x avg/x
D、i avg/n
(  A  )
5、设int a=4,b; 则执行b=a<<1; 语句后,b的结果是________。
A、8
B、2
C、16
D、10
(  D  )
6、以下程序的输出结果是______。
#include <stdio.h>
main()
{
int a=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
}
A、a=%2,b=%5
B、a=2,b=5
C、a=%%d,b=%%d
D、a=%d,b=%d
(  B  )
7、有以下程序int a=4;
int f(int n)
{
int t=0;
static int a=5;
if(n%2)
{
int a=6;
t+=a++;
}
else
{
int a=7;
t+=a++;
}
return t+a++;
}
main()
{
int s=a,i=0;
for(;i<2;i++) s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
A、24
B、28
C、32
D、36
(  A  )
8、有以下程序
#include <stdio.h>
main()
{
int n, *p=null;
*p=&n;
printf("input n:");
scanf("%d",&p);
printf("output n:");
printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是______。
A、int n , *p=NULL;
B、*p=&n;
C、scanf("%d",&p)
D、printf("%d\n",p);
(  A  )
9、下列程序执行后的输出结果是________。
main()
{
int x='f';printf("%c”,'A'+(x-‘a’+1));
}
A、G
B、H
C、I
D、J
(  C  )
10、有以下程序
#include <string.h>
main()
{
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcpy(p+strlen(q),r);
strcat(p,q);
printf("%d\n", strlen(p));
}
程序运行后的输出结果是______。
A、9
B、8
C、11
D、12