|
(26)现有如下程序 #include "stdio.h" int fun(int x) {printf("x=%d\n",++x);} main() {fun(12+5);} 则程序的输出结果是 A)12 B)13 C)17 D)18 (27)现有如下程序段 #include "stdio.h" int aa(int x,int y); main() {int a=24,b=16,c; c=aa(a,b); printf("%d\n",c);} int aa(int x,int y) {int w; while(y) {w=x%y; x=y; y=w;} return x;} 则程序段的输出结果是 A)8 B)7 C)6 D)5 (28)下列说法错误的是 A)函数调用时,函数名必须与所调用的函数名字完全相同 B)实参的个数必须与形式参数的个数一致 C)实参可以是表达式,在类型上必须与形参一一对应匹配 D)C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外) (29)函数的值通过return语句返回,下面关于return语句的形式描述错误的是 A)return表达式; B)return(表达式); C)一个return语句可以返回多个函数值 D)一个return语句只能返回一个函数值 (30)现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是 A)p=&a; B)q=&b; C)p=q; D)p=a; (31)现有如下程序段 #include "stdio.h" int *fun(int *a,int *b) {int c; c=*a%*b; return &c;} main() {int a=5,b=19,*c; c=fun(&a,&b); printf("%d\n",++*c);} 则程序段执行后的结果为 A)8 B)7 C)6 D)5 (32)现有int a,*b;,b=&a;,则下列运算错误的是 A)*&a B)&*a C)*&b D)&*b (33)现有如下程序段 #include "stdio.h" main() { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while(k[i]) { if(k[i]%2==0‖k[i]%5==0)count++; i++; } printf("%d,%d\n",count,i);} 则程序段的输出结果为 A)7,8 B)8,8 C)7,10 D)8,10 (34)现有如下定义语句 int*p,s[20],i; p=s; 表示数组元素s[i]的表达式不正确的是 A)*(s+i) B)*(p+i) C)*(s=s+i) D)*(p=p+i) (35)阅读如下程序段,这个程序在编译的时候会有一个警告,下列关于这个警告叙述正确的是 #include "stdio.h" #define N 10 int *fun(int a[N],int n) { int i,b[N]; for(i=0;i b[i]=a[i]; return(b);} main() { int a[N]={12,34,45,5,6,34,4,655,2}; int *k; k=fun(a[N],5); printf("%d\n",*k);} A)指针k没有指向任何对象而成为“无向指针”,所以这里会产生警告 B)return语句不应该有括号,所以在这里会有警告 C)return语句的返回值类型与指针k的基类型不一致,这里会产生警告 D)数组赋值的时候没有把数组全部都赋初值,所以在这里会有警告 (36)有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为 A)3,2 B)3,1 C)2,2 D)2,1 (37)现有如下程序段 #include "stdio.h" main() {int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1}; int i=0,j=5; printf("%d\n",*(&a[0][0]+2*i+j-2));} 则程序的输出结果为 A)21 B)78 C)23 D)28 (38)下列程序的输出结果是 #include "stdio.h" #define N 3 #define M 3 void fun(int a[M][N]) {printf("%d\n",*(a[1]+2));} main() {int a[M][N]; int i,j; for(i=0;i for(j=0;j a[i][j]=i+j-(i-j); fun(a);} A)3 B)4 C)5 D)6 (39)下列关于字符串的说法中错误的是 A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志 B)′\0′作为标志占用存储空间,计入串的实际长度 C)在表示字符串常量的时候不需要人为在其末尾加入′\0′ D)在C语言中,字符串常量隐含处理成以′\0′结尾 (40)有下面程序段 #include "stdio.h" #include "string.h" main() {char a[3][20]={{"china"},{"isa"},{"bigcountry!"}}; char k[100]={0},*p=k; int i; for(i=0;i<3;i++) { p=strcat(p,a[i]);} i=strlen(p); printf("%d\n",i);} 则程序段的输出结果是 A)18 B)19 C)20 D)21 (41)现有如下程序段 #include "stdio.h" #include "string.h" main() {char a[]="acfijk";/*这里是有序的字符序列*/ char b[]="befijklqswz";/*这里是有序的字符序列*/ char c[80],*p; int i=0,j=0,k=0; while(a[i]!=′\0′ && b[j]!=′\0′) {if(a[i] else if(a[i]>b[j])c[k++]=b[j++]; else {c[k++]=b[j++]; i++;}} while(a[i]==′\0′ && b[j]!=′\0′) c[k++]=b[j++]; while(a[i]!=′\0′ && b[j]==′\0′) c[k++]=a[i++]; c[k]=′\0′; puts(c);} 则输出结果是 A)acfijkbefijklqswz B)abceffiijjkklqswz C)befijklqswz acfijk D)abcefijklqswz (42)现在有如下程序 #include "stdio.h" main() {char s[80]; int i,j; gets(s); for(i=j=0;s[i]!=′\0′;i++) if(s[i]!=′H′______) s[j]=′\0′; puts(s);} 这个程序段的功能是删除输入的字符串中字符′H′,则空线上应当添入的是 A)s[j++]=s[i];j++; B)s[j]=s[i++];j++; C)s[j++]=s[i]; D)s[j]=s[i]; (43)下列说法中错误的是 A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值 B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽 C)静态全局变量可以被其他的编辑单位所引用 D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语 句)时生成,退出其所在的函数体(或复合语句)时消失 (44)阅读下列程序段,则程序的输出结果为 #include "stdio.h" #define M(X,Y)(X)*(Y) #define N(X,Y)(X)/(Y) main() {int a=5,b=6,c=8,k; k=N(M(a,b),c); printf("%d\n",k);} A)3 B)5 C)6 D)8 (45)若有以下定义和语句 struct a { int n,m;}; struct a st[3]={{1,20},{2,19},{3,21}}; struct a *p=st; 则以下错误的引用是 A)(p++)->n; B)st[0].n; C)(*p).n; D)p=&st.m; (46)假设有如下定义:struct a{int n;float k;}data,*p;若要使p指向data中的成员n,正确的赋值语句是 A)p=&data.n; B)*p=data.n; C)p=(struct a *)&data.n; D)p=(struct a *)data.n; (47)下面函数的功能是将指针t2所指向的线性链表,链接到t1所指向的链表的末端。假定t1所指向的链表非空 struct node{ float x;struct node *next;}; connect(struct node *t1, struct node *t2) { if(t1->next==NULL)t1->next=t2; else connect(______ ,t2); } 要实现此功能则应该添入的选项是 A)t1.next B)++t1.next C)t1->next D)++t1->next (48)C语言结构体类型变量在程序运行期间 A)TC环境在内存中仅仅开辟一个存放结构体变量地址的单元 B)所有的成员一直驻留在内存中 C)只有最开始的成员驻留在内存中 D)部分成员驻留在内存中 (49)有下列运算符:~,&,<<,>>, |,^,则运算的优先顺序是 A)~,&, |,<<,>>,^ B)~,<<,>>,&, |,^ C)~,<<,>>,^, &,| D)~,<<,>>,&,^, | (50)最简单的交换排序方法是 A)快速排序 B)选择排序 C)堆排序 D)冒泡排序
共4页: 上一页 [1] 2 [3] [4] 下一页
|