出自:中北大学C语言程序设计

设变量n为float,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入的表达式是(   )。(2分) An=(n*100+0.5)/100.0 Bm=n*100+0.5,n=m/100.0 Cn=n*100+0.5/100.0 Dn=(n/100+0.5)*100.0
C语言规定,函数返回值的类型是由所决定(   )。(2分) Areturn语句中的表达式类型 B调用该函数时的主调函数类型 C调用该函数是系统临时指定 D在定义该函数时所指定的函数类型
下面程序的功能是计算正整数2345的各位数字平方和。(   )。 #include "stdio.h" main() {int n,sum=0; n=2345; do {sum=sum+(?); (2分) An%10 B(n%10)*(n%10) Cn/10 D(n/10)*(n/10);
设变量a是整型,f是实型,i是双精度型,则表达式10+.a.+i*f值的数据类型为(   )。(2分) Aint Bfloat Cdouble D不确定
逻辑运算符两则运算对象的数据类型(   )。(2分) A只能是0或1 B只能是0或非0正数 C只能是整型或字符型数据 D可以是任何类型的数据
下面程序的运行结果是(   )。 #include<stdio.h> main() {int i; for(i=1;i<=5;i++) switch(i%5) {case 0:printf("*");break; case 1:printf("#");break; default:printf("\n");break; case 2:printf("&"); } } (2分) A#&&* B#& C# D#&
else if(m>a[mid]) 【2】; else return(mid); } return(-1); }(   )。 (2分) Ahigh=mid-1 Bhigh=mid+1 Clow=mid-1 Dlow=mid+1
下面正确的字符常量是(   )。(2分) A"c" B.\\.. C.W. D""
设有如下定义:struct sk {int a; float b; }data; int *p; 若要使p指向data中的a域,正确的赋值语句是(   )。(2分) Ap=&a; Bp=data.a; Cp=&data.a; D*p=data.a
执行以下语句后a的值为,b的值为(   )。 int a,b,c; a=b=c=1; ++a||++b&&++c; (2分) A0 B1 C2 D错误
如果要以只读方式打开一个文本文件,应使用的打开方式是(   )。(2分) Ar+ Bw Cr Drb
下面是对s的初始化,其中不正确的是(   )。(2分) Achar s[5]={"abc"}; Bchar s[5]={.a.,.b.,.c.}; Cchar s[5]=""; Dchar s[5]="abcde";
若有以下说明和语句:int a[10],*p1, *p2; p1=a; p2=&a[5];则p2-p1的值为 (   )。(2分) A5 B6 C10 D没有指针与指针的减法
以下叙述中正确的是(   )。(2分) A在程序的一行上可以出现多个有效的预处理命令行 B使用带参的宏时,参数的类型应与宏定义时的一致 C宏替换不占用运行时间,只占用编译时间 D以下定义中C R是称为宏名的标识符#define C R 045
有函数关系如下,能正确表示该关系的程序段是(   )。 image3.pict (2分) Ay=x+1; if(x>=0) if(x= =0) y=x; else y=x-1; By=x-1; if(x!=0) if (x>0) y=x+1; else y=x; Cif (x<=0) if (x<0) y=x-1; else y=x; else y=x+1 Dy=x; if(x<=0) if (x<0) y=x-1; else y=x+1;
若有以下说明和语句:int a[10], *p1, *p2;p1=a;p2=&a[5];则以下不正确的表达式是(   )。(2分) Ap1=p2 Bp1=p2 Cp2-p1 Da=p2-3
已有定义语句int *p;以下能动态分配一个整型存储单元,并把该单元的首地址正确赋值给指针变量p的语句是(   )。(2分) A*p=(int *)malloc(sizeof(int)); Bp=(int *)malloc(sizeof(int)); Cp=* malloc(sizeof(int)); Dfree(p);
如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是。(   )。(2分) A只在该复合语句中有效 B只在该函数中有效 C在本程序范围内均有效 D为非法变量
以下叙述中不正确的是(   )。(2分) A预处理命令都必须以#开始 B在C程序中凡是以#开始的语句行都是预处理命令行 CC程序在执行过程中对预处理命令行进行处理 D以下是正确的宏定义 #define IBM_PC
下面程序段(   )。 for(t=1;t<=100;t++) {scanf("%d",&x); if(x<0)continue; printf("%3d",t); } (2分) A当x<0时整个循环结束 Bx>=0时什么也不输出 Cprintf函数永远也不执行 D最多允许输出100个非负整数
C语言中(以16位PC机为例),各数据类型的存储空间长度的排列顺序为(   )。(2分) Achar<int<long<=float<double Bchar=int<long<=float<double Cchar<int<long=float=double Dchar=int=long<=float<double
若用数组名作为函数调用的实参,传递给形参的是(   )。(2分) A数组的首地址 B数组第一个元素的值 C数组中全部元素的值 D数组元素的个数
当#include后面的文件名用<>括起时,寻找被包含文件的方式是(   )。(2分) A仅仅搜索当前目录 B仅仅搜索当前目录 C直接按系统设定的标准方式搜索目录 D先在源程序所在目录搜索,再按系统设定的标准方式搜索
在c语言中,引用数组元素时,其数组下标的数据类型是。(   )。(2分) A整型常量 B整型表达式 C整型常量或整型表达式 D任何类型的表达式
已有如下定义: struct node {int data; struct node *next; }*p,*q; 并已建立了如图所示的单向链表,p,q分别指向图中所示的结点,将q所指的结点插入到链表末尾组成单向链表,以下不能实现该功能的程序段是(   ) image4.pict (2分) A(*p).next=q; (*q).next=NULL; Bq->next=p->next;p->next=q; Cq->next=NULL;p->next=q; Dp->next=q;q->next=p->next;
能正确表示“当x的取值在[1,10]和[200,210]范围内为真”的C语言表达式为(   )。(2分) A(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B(x>=1)&&(x<=10)||(x>=200)&&(x<=210) C(x>=1)||(x<=10)||(x>=200)||(x<=210) D(x>=1)||(x<=10)&&(x>=200)||(x<=210)
若使用一位数组名作为函数实参,则以下正确的说法是( )。(2分) A必须在主调函数中说明此数组的大小 B实参数组类型与形参数组类型可以不匹配 C在被调函数中,不需要考虑形参数组的大小 D实参数组名与形参数组名必须一致
已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=.A.+.6.-.3.;后,c2的值为(   )。(2分) AD B68 C不确定的值 DC
以下关于运算符优先顺序的描述中正确的是 (   )。(2分) A关系运算符<算术运算符<赋值运算符<逻辑运算符 B逻辑运算符<关系运算符<算术运算符<赋值运算符 C赋值运算符<逻辑运算符<关系运算符<算术运算符 D算术运算符<关系运算符<赋值运算符<逻辑运算符
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(假设a[0][0]位于数组的第一个位置上)。(   )。(2分) Ai*m+j Bj*m+i Ci*m+j-1 Di*m+j+1
C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(   )。(2分) Afloat型 Bint型 Clong型 Ddouble型
有一堆零件(100到200之间),如果分成4个零件一组则多出2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多出5个零件。下面程序是求这堆零件总数,请选择填空( )。 #include <stdio.h> main() {int i; for(i=100;i<200;i++) if((i-2)%4==0) if(!((i-3)%7)) if() printf("%d",i); } (2分) Ai%9=5 Bi%9!=5 C(i-5)%9!=0 Di%9==5
下面程序的运行结果是(   )。 #include<stdio.h> main() {int a,b; for(a=1,b=1;a<=100;a++) {if(b>=20) break; if(b%3==1){b+=3;continue;} b-=5; } printf("%d\n",a); } (2分) A7 B8 C9 D10
以下程序段完全正确的是(   )。(2分) Aint *p; scanf("%d",&p);  Bint *p; scanf(“%d”,p); Cint k, *p=&k; scanf("%d",p); Dint k, *p; *p= &k; scanf(“%d”,p);
已有程序段和输入数据的形式,程序中输入语句的正确形式应当为(   )。 main() { int a;float f; printf("Input number:"); (输入语句) printf("\nf=%f,a=%d\n",f,a); } Input number:4.5□□2<CR> (2分) Ascanf("%d,%f",&a,&f); Bscanf("%f,%d",&f,&a); Cscnaf("%d%f",&a,&f); Dscanf("%f%d",&f,&a);
若有以下定义,则正确的赋值语句为(   ) struct complex { float real; float image; }; struct value { int no; struct complex com; }val1; (2分) Acom.real=1; Bval1.complex.real=1; Cval1.com.real=1; Dval1.real=1;
当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是(   )。 if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x=3; else x=6; else x=3 (2分) A1 B2 C3 D6
已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。 if(x>y) z=x;x=y;y=z; ( )。 (2分) A10,20,30 B20,30,30 C20,30,10 D20,30,20
建立函数的目的之一,以下正确的说法是(   )。(2分) A提高程序的执行效率 B提高程序的可读性 C减少程序的篇幅 D减少程序文件所占内存
若运行时给变量输入12,则以下程序的运行结果是(   )。 main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y); } (2分) A0 B22 C12 D10
sizeof(float)是(   )。(2分) A一个双精度型表达式 B一个整型表达式 C一种函数调用 D一个不合法的表达式
若磁盘上已存在某个文本文件,其全路径文件名为c:\c\data.txt,下列语句中不能打开文件的是(   )。(2分) AFILE *in;in=fopen("c:\c\data.txt","r"); BFILE *in;in=fopen("c:\\c\\data.txt","r"); CFILE *in;in=fopen("c:\\c\\data.txt","a+"); DFILE*in;in=fopen("c:\\c\\data.txt","r+");
若有:int a[6]={4,5,6,7,8,9},*p=a, *q=p; 则对数组元素的错误引用是(   )。(2分) Aa[4] B*(p+4) C*q++ D*a++
下面程序的运行结果是。 #include<stdio.h> main() {char str[]="SSSWLIA",c; int k; for(k=2;(c=str[k])!=.\0.;k++) {switch(c) {case .I.:++k;break; case .L.:continue; default:putchar(c);continue; } putchar(.*.); } }(   )。 (2分) ASSW* BSW* CSW*A DSW
以下正确的描述是(   )。(2分) A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用均不可嵌套 D函数的定义和函数的调用均可以嵌套
若有说明:int a[3][4]={0};则下面正确的叙述是。(   )。(2分) A只有元素a[0][0]可以得到初值0 B此说明语句不正确 C数组中各元素都可以得到初值,但其值不一定为0 D数组中每个元素均可得到初值0
设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为(   )。 struct student { char name[20]; int age; char sex; }stu[5], *p; p=stu; (2分) Ascanf("%s",stu[0].name); Bscanf("%d",p->age; Cscanf("%c",&(p->sex)); Dscanf("%d",&stu[0].age);
在C程序中,注释说明只能位于一条语句的后面(   )。(2分) A必须在最开始 B必须在系统调用的库函数的后面 C可以任意 D必须在最后
若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。(2分) A2.500000 B2.750000 C3.500000 D0.000000
printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 (   );如果字符串长度小于5,则输出按方式 (   )。(2分) A从左起输出该字符串,右补空格 B按原字符串长从左向右全部输出 C右对齐输出该字符串,左补空格 D输出错误信息