for(i=0;i<3;i++)
for(j=i+1;j<3;j++) s*=a[i][j];
A) 6 B) 120 C) 24 D)480
51201 A 设有以下变量定义:char str1[]=”string”, str2[8],*str3, *str4=”string”;( )是正确的。 A) strcpy(str1,\B) str2=\
C) strcpy(*str3,\D) strcpy(str4[0],\
51202 D 有如下定义:
char str[6]={?a?,?b?,?\\0?,?d?,?e?,?f?};
则语句:printf(“%s”,str);的输出结果是( )。
A) ab\\ B) abdef C) ab\\0
D) 7
51208 A 以下程序运行后屏幕输出为()。 char str[60]; strcpy(str,”hello”); printf(“%d”,strlen(str)); A) 5 B) 6 C) 7 D) 80
51209 B char str1[6]= “abcdm”,*ps,*str2= “abcdef”;( )是正确的。 A) strcpy(str1,str2);
B) 表达式strcmp(str1,str2)的值大于0 C) str1=str2;
D) 表达式strlen(str1)的值为6 51210 D 有如下定义:
char str[3][2]={?a?,?b?,?c?,?\\0?,?e?,?f?};
D) ab 则语句:printf(“%s”,str[0]);的输出结果是( )。 51203 C 设有如下数组定义:char str[8]={“FuJian”}; A) ab
B) abcef 则分配给数组str的存储空间是( )字节。
A) 6 C) abc\\0 B) 7 C) 8 D) 9
51204 B 若有定义:char a[ ]=”abcdef”;
char b[]=”xyz”;则以下程序运行后屏幕输出为()。 strcpy(a,b); printf(“%c”,a[2]); A) c B) z C) \\0 D) d
51205 C 以下程序段运行后屏幕输出为()。 char a[ ]= “abc\\0mis”; printf(“%d”,strlen(a)); A) 5 B) 8 C) 3 D) 4
51206 B 若有定义:int a=2;则语句
a=strcmp(“miss”, “miss”);运行后a的值为( )。 A) 1 B) 0 C) –1 D) 2
51207 B 下列程序运行后输出( ). char str[ ]=”ab\\\\cd”; printf(“%d”,strlen(str)); A) 4 B) 5 C) 6
9
D) abc
51211 D 已有定义 char str1[15]={“university”}, str2[15];则以下语句中正确的是()。 A) str2=str1;
B) str2=”college”; C) scanf(“%s”,&str2); D) printf(“%s”,str1); 51301 A 设有如下函数定义: int fun(char *str) { char *p=str;
while (*p!=?\\0?) p++; return (p-str);
}则以下语句执行后的输出结果死( ) printf(“%d\\n”,fun(“Student”)) A) 7 B) 8 C) 9 D) 10
51302 A 以下程序的运行结果是( )。
int fun(int array[4][4])
{int j;
for(j=0;j<4;j++) printf(“-”,array[2][j]); printf(“\\n”); }
main()
{int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a);
}
A) 2 0 0 5 B) 1 0 0 4 C) 0 1 2 0 D) 0 4 5 0
51303 C 如下fun函数的类型是( )。
fun(float x)
{double y; int z;
y=x*x; z=(int)y;
return(z); }
A) void B) double C) int D) float
51304 B 以下程序运行后屏幕输出为()。#include
printf(“%d+%d=%d”,a,b,c); } A) 0
B) 2+3=5 C) 2+3=0 D) 3+2=5
51305 D 以下程序运行后屏幕输出为()。#include
int max (int a, int b) { int c; c=a>b?a:b; return (c); }
main() { int a=4;
printf(“%d”,max(a,b)); }
A) 2,3 B) 2 C) 3 D)4 51306 B 以下程序运行后屏幕输出为()。 #include
printf(“%d,” ,a ); } main( )
{ int a=1,c=3; f(c); a=c++; printf(“%d”,a);
} A) 4,3 B) 3,3 C) 4,5 D) 3,5
51307 D int fun() {static int k=0; return ++k;
}
以下程序段运行后输出()。 int i;
for(i=1;i<=5;i++) fun();
printf(“%d”,fun());
A) 0 B) 1 C) 5 D) 6 51308 D 以下程序运行后屏幕输出为()。 #include
{ int global=5;
return ++global; } void main( )
{ printf(“%d\\n”,fun( )); } A) 100 B) 101 C) 5 D) 6
51309 B 下列关于C语言函数的描述中正确的是()。A) 函数的定义可以嵌套,但函数的调用不可以嵌套 B) 函数的定义不可以嵌套,但函数的调用可以嵌套 C) 函数的定义和函数的调用都可以嵌套 D) 函数的定义和函数的调用都不可以嵌套 51310 B 以下程序运行结果是()。 fun (int i ) { int a=2;
a=i++;
printf(“%d,” ,a ); } main( )
{ int a=5,c=3; fun(c); printf(“%d”,a);
10
}
A) 4 5 B) 3 5 C)4 4 D) 3 3 51311 A 以下程序的运行结果是()。 fun(int x,int y) { int z;
z=(x printf(“%d\\n”,fun(a,b)); } A) 4 B) 16 C) 10 D) 6 51401 D 若有以下宏定义,#define MOD(x,y) x%y 则执行以下程序段后,z的值是( )。 int z,a=15,b=100; z=MOD(b,a); A) 100 B) 15 C) 11 D) 10 51402 B 以下叙述中,正确的是( )。 A) “#define PRICE=30”定义了与30等价的符号常量PRICE B) 预编译处理命令行都必须以“#”开头 C) 程序中使用带参数的宏时,参数类型要与宏定义时 一致 D) 宏名只能包含大写字母和数字字符 51403 A 以下叙述中,正确的是( )。 A) 宏展开不占用运行时间,只占用编译时间 B) 预编译处理命令行必须以分号结束 C) 一个源程序只能有一个预编译处理命令行 D) 使用带参数的宏定义时,应该说明每个参数的数据 类型 51404 C 以下叙述中不正确的是( )。 A) 宏展开不占用运行时间,只占用编译时间 B) 宏名无类型 C) 宏名必须用大写字母表示 D) 预处理命令行都必须以#号开始 51405 A 若有定义: #define PI 3, 则表达式PI*2*2的值为()。 A) 12 B) 4 C) 3 D) 不确定 51406 C 以下程序运行后,屏幕输出为()。 #define MIN(a,b)((a)<(b)?(a):(b)) main() { int x=2,y=3,z; 11 z=2*MIN(x,y); printf(“%d”,z); } A) 2 B)3 C) 4 D) 6 51407 A 下面程序的输出结果是()。 #include 51408 C 下面程序的输出结果是()。 #include { printf(“%d\\n”,THREE-ONE) } A) 产生错误 B) 1 C) 2 D) 3 51409 B 以下叙述正确的是()。 A) 预处理命令行必须位于C源程序的起始位置 B) 在C语言中,预处理命令行都以\开头 C) 每个C程序必须在开头包含预处理命令行: #include D) C语言的预处理不能实现宏定义和条件编译的功能 51410 B 以下程序的运行结果是()。 #define ADD(x) x+x main() { int m=1,n=2,k; k=ADD(m+n)*3; printf(“%d”,k); } A) 9 B) 10 C) 12 D)18 51501 D 设有以下语句,则( )是对a数组元素的不正确引用,其中0≤i<10。 int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a ; A) a[p–a] B) *(&a[i]) C) p[i] D) *(*(a+i)) 51502 C 若有定义int *p1,*p2;,则指针变量p1、p2不能进行的运算是( )。 A) < B) = C) + D) – 51503 B 执行以下程序段的输出结果是( )。 int a=10,*p=&a; printf(“%d”,++*p); A) 10 B) 11 C) 变量a的地址 D) 变量a的地址 + 1 51504 A 以下程序段运行后*(p+3)的值为()。 char a[]=”good”; char *p; p=a; A) 'd' B) '\\0' C) 存放'd'的地址 D) 'o' 51505 C 以下程序段运行后*(++p)的值为()。 char a[5]=”work”; char *p; p=a; A) 'w' B) 存放'w'的地址 C) 'o' D) 存放'o'的地址 51506 B 若有定义:int *p,a=4; p=&a;则以下均代表地址的是()。 A) a,p B) &a,p C) &a,*p D) a,*p 51507 D 若有说明语句:double *p,a; 则能通过scanf语句正确输入项读入数据的程序段是()。 A) *p=&a;scanf(\B) *p=&a;scanf(\C) p=&a;scanf(\D) p=&a;scanf(\ 51508 A 在16位编译系统上,定义int a[]={10,20,30} , *p=&a; 当执行p++;后下列错误的是()。 A) p向高地址移了一个字节 B) p与a+1等价 C) 语句printf(\输出20 12 D) p指向数组元素a[1] 51509 B 下面语句正确的是()。 A) int *p; *p=20; B) char *s=\C) char str[]=\ D) char str[]={'a','b','c'};printf(\51601 D 若有以下程序段,且0≤i<4,0≤j<3,则不能正确访问a数组元素的是( )。 int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a; A) *(*(a+i)+j) B) p[i][j] C) (*(p+i))[j] D) p[i]+j 51602 B 若函数fun的函数头为:int fun(int i,int j) 且函数指针变量p定义如下: int (*p)(int i,int j); 则要使指针p指向函数fun的赋值语句是( )。 A) p=*fun; B) p=fun; C) p=fun(i,j); D) p=&fun; 51603 D 设有如下变量定义: char aa[ ][3]={?a?,?b?,?c?,?d?,?e?,?f?}; char (*p)[3]=aa; 则以下程序段的运行结果是(D)。 p++; printf(“%c”,**p); A) a B) b C) c D) d 51604 D 以下程序段运行后x的值为()。 int a[]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1; p=&a[2]; for(i=0;i<3;i++) x*=*(p+i); A) 不确定 B) 24 C) 120 D) 60 51605 B 以下程序段运行后x的值为()。 int a[ ]={1,2,3}, b[ ]={4,2,5}; int *p,*q; int i ,x; p=a; q=b; for(i=0;i<3;i++)
相关推荐: