提示:内容已经过期谨慎付费,点击上方查看最新答案
C语言程序设计基础
- 设 f是实型变量,下列表达式中不是逗号表达式的是 。
- 访问一个结构体的成员,可以选用的运算符是 。
- 表达式: 10!=9的值是
- 设变量i是int类型,f是float型,d是double型,执行表达式5+’i’-f*d,其结果的数据类型为 。
- 运行下面程序时,从键盘输入数据为"2,13,5
",
则输出结果是( )。
#include
main( )
{ int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
switch(a)
{ case 1: printf("%d\n",b+c); break;
case 2: printf("%d\n",b-c); break;
case 3: printf("%d\n",b*c); break;
case 4: { if(c!=0) {printf("%d\n",b/c);break;}
else {printf("error\n");break;}
}
defualt: break;
}
} - 已知各变量的类型说明如下:
intk,a,b;
longw=8;
floatx=2.56;
以下不符合C语言语法的表达式是 。 - 若定义floata;,现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用 。
- 为表示关系x≥y≥z,应使用C语言表达式
- 以下正确的函数原型是 。
- 以下程序的输出结果是 。
int x;
void fun( int x)
{
x*=x;
printf("%d",x);
}
int main( )
{
int x=4;
fun(x);
printf("%d",x);
{
int x=0;
printf("%d",++x);
}
printf("%d",x);
return 0;
} - 以下不是无限循环的语句为 。
- 设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,
值为0的表达式是 - 下面程序的运行结果是 。
#include
main()
{
char ch[7]={“12ab56”};
int i,s=0;
for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
} - 下面程序运行结果是 。
#define MUL(x,y) x*y
int main( )
{
double x=4,y=6,z;
z=MUL(x-y,x+y);
printf("%.2f",z);
return 0;
} - 下面程序段中,for循环的执行次数是___________。
char *s=”\ta\018bc”;
for( ;*s!=’\0’; s++) printf(“*”); - 以下函数的功能是 。
void fun(char *s1,char*s2)
{int i;
char*s =s1;
for(; *s2!= '\0';s2++)
{for(j=0, s1=s;*s1!= '\0';s1++)
if(*s1!=*s2)
s[j++]=*s1;
s[j]='\0';
}
} - 对于return语句说法正确的是 。
- 设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是 。
- 下面有关for循环的正确描述是 。
- 请读程序:
#include
main( )
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1: switch (y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2: a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序的输出结果是 - 选择出合法的判断a和b是否相等的if语句(设int x,a,b,c;)。
- 设ch是 char型变量,其值为 'A',则下面表达式的值是 。ch=(ch>='A'&& ch<='Z')? (ch+32):ch
- 有字符数组a[80]和b[80],则正确的输出形式是 。
- 若有以下数组说明,则数值最小的和最大的元素下标分别是 。int a[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
- 设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是 。
- 下列叙述中正确的是()。
- 下列程序段的功能是计算:s=1+12+123+1234+12345,则划线处应填()。
int i,s=0,t=0;
for(i=1;i<=5;i++)
{t=i+ ;
s=s+t;
}
printf("s=%d",s); - int a[4]={5,3,8,9};其中 a[3]的值为 。
- 下面程序的运行结果是 。
#include
main()
{
char a[]=“morning”,t;
int i,j=0;
for(i=1;i<7;i++) if(a[j] t=a[j]; a[j]=a[7];
a[7]=a[j]; puts(a);
} - 下面程序的运行结果是 。
#include
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(‘*’);
}
} - 下列各语句定义了数组,其中哪一个是不正确的 。
- 定义以下结构体类型
struct s
{ char x;
float f;
}a[3];
语句printf("%d",sizeof(a))的输出结果为 。 - 下面与x=y++完全等价的表达式是 。
- 有以下程序
#include
main()
{FILE*fp;int i,k,n;
fp=fopen("data。dat","w+");
for(i=1;i<6;i++)
{fprintf(fp,"%d",i);
if(i%3==0)fprintf(fp,"\n");
}
rewind(fp);
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);
}
程序运行后的输出结果是 。 - 下面程序段的运行结果是 。
char c[]=“\t\v\\\0will\n”;
printf(“%d”,strlen(c)); - 以下程序的运行结果是( )。
#include
int main( )
{ int a;
for(a=0;a<5&&a!=1;a++)
{
printf("%d ;",a);
}
} - 设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是 - 以下程序的运行结果是( )。
#include
int main( )
{ int x=3;
do
{ printf(“%d”,x--);
}while(!x);
return 0;
} - 下面不是结构体类型特点的选项为 。
- int b=0,x=1;执行语句 if(x++) b=x+1; 后,x,b 的值依次为 。
- 假定int类型变量占用两个字节,其定义为:int x[10]={0,2,4};则数组x在内存中所占字节数是 。
- 有以下程序
#include
int main()
{
int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;
for(i=0;i<5;i++) s=s+a[b[i]];
printf(“%d\n”,s);
}
运行后的输出结果是 。 - 有以下定义和语句:
struct student
{ int age;
int num; };
struct student stu[3]={{1001,20},{1002,19},{1003,21}};
int main( )
{ struct student *p;
p=stu;
…… }
则以下不正确的引用是 。 - 与语句while(!s)中的条件等价的是()。
- 要为字符型变量 a赋初值,下列语句中哪一个是正确的 。
- 设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是 。
- 能正确表示逻辑关系“a≥10”或“a≤0”的C语言表达式是( )。
- 当运行以下程序时,从键盘输入:aa bb
。
cc dd
(表示回车),则下面程序的运行结果是
#include
main()
{
char a1[5],a2[5],a3[5],a4[5];
scanf(“%s %s”,a1,a2);
gets(a3); gets(a4);
puts(a1); puts(a2);
puts(a3); puts(a4);
} - 以下选项中,正确的 C 语言整型常量是 。
- 下面的程序
#include
main( )
{ int x=3,y=0,z=0;
if (x=y+z) printf("* * * *");
else printf("# # # #"); } - C语言中,一个整数如果其值在-323768~32767范围内,认为它是int型,只能赋值给int型变量。
- 如果将结构体指针作为函数的参数,可以完成比基本类型指针更为复杂的操作。
- 结构体指针变量不可以直接指向结构体数组中的元素。
- 以下语句有错,错误原因是未给指针变量p赋地址值。
# include<stdio.h>
int main()
{int*p;
* p=100; - 在C语言中,字符串常量隐含处理成以‘\0’结尾。
- C语言中,符号常量的值在程序运行过程中可以改变。
- C语言中,不要求对程序中所用到的变量进行强制定义。
- 程序设计语言有两个功能即数据表达和流程控制。
- 指针数组和指向一维数组的指针含义相同。
- C语言中函数参数传递方式有地址传递和值传递两种。
A:f=(3.2, 1.0) B:f= 3.2, 1.0 C:f>0, f D:f=2.0, f>0
答案:f=(3.2,1.0)
A:“;” B:“.” C:“( )” D:“=”
答案:“.”
A:true B:0 C:1 D:非零值
答案:1AI参考:正确选项是D:非零值。在大多数编程语言中,非零的零值通常被视为真(true),而零被视为假(false)。因此,表达式 10 != 9 的结果是非零值,即D选项中的“非零值”。所以答案是D。至于为什么是单选题,因为在这样的简单表达式中,只需要直接使用一个答案就可以正确得出结果,无需分析。此外,在计算机编程中,这类简单逻辑判断问题通常是基础的题目,有助于新手理解和掌握。'
A:double型 B:非法表达式 C:float型 D:int型
答案:double型
A:8 B:65 C:error D:10
答案:8
A:x%5 B:)w-=5 C:k=(a=8,b=6,a-b) D:a+=a-=(b=2)*(a=5)
A:scanf("%5.2f",a); B:scanf("%6.2f",&a); C:scanf("%f",a); D:scanf("%6f",&a);
A:(x>=y)AND(y>=z) B:(x>=y)&&(y>=z) C:(x>=y) || (y>=z) D:(x>=y>=z)
A:int fun[int x, int y]; B:int fun(int x, y); C:int fun(int ,int ); D:int fun(int x; int y );
AI参考:正确选项是B:int fun(int x, y);。函数原型是声明一个函数的基本格式,它应该包括函数类型、函数名、参数列表和返回值类型。选项A和D中缺少了参数列表中的参数数量和类型,选项C中缺少了返回值类型。只有选项B符合函数原型的格式要求,它声明了一个名为fun的函数,该函数接受两个int类型的参数x和y,并且没有指定返回值类型。'
A:16,4,5,5 B:16,16,17,17 C:16,4,1,1 D:16,4,1,4
AI参考:正确答案是【C:16,4,1,1】。程序中首先定义了一个变量x,值为4,然后调用fun函数,将x的值传递给fun函数中的x,fun函数中x*=x运算后值为16,然后输出这个值。接着main函数中输出变量x的值,值为4。然后在fun函数中的代码块中又定义了一个变量x,并使用++x将x的值变为1,再输出这个值。最后再次输出变量x的值,此时x的值为1。所以程序输出的结果为:16,4,1,1。因此选项C为正确答案。'
A:for(i=10;;i--) sum+=i; B:for(;;x++=i); C:for(y=0,x=1;x>++y;x=i++) i=x D:while(1) { x++; }
AI参考:正确选项是:D:while(1) { x++; }该题目要求找出不是无限循环的语句,因为只有非无限循环的语句才是正确的选项。在四个选项中,只有D选项是条件语句,并且在无限循环的条件为假的情况下,x的值会增加一个单位。其他三个选项都存在无限循环的条件,不符合题目要求。因此,D选项是正确答案。'
A:1 2 5 6 B:1256 C:12ab56 D:1
A:-14 B:-20 C:24 D:12
AI参考:正确选项是 `C:24`。程序中使用了宏定义 `MUL(x,y)`,它相当于一个函数,将 `x*y` 的结果返回。在 `main()` 函数中,将 `x-y` 和 `x+y` 分别代入 `MUL(x-y,x+y)` 中,得到 `z = 4*6 = 24`。最后使用 `printf("%.2f",z)` 输出结果,保留两位小数,所以最终输出结果为 `24.00`。'
A:9 B:5 C:7 D:6
AI参考:正确选项是【D:6】。 程序段中,首先定义了一个字符指针s,指向字符串a 18bc。然后使用for循环遍历这个字符串,直到遇到字符串的结束符 为止。在每次循环中,指针s都会向前移动一位,输出一个星号(*)。由于字符串a 18bc中有5个字符(包括 ),因此循环将会执行5次。但是在循环内部使用了printf函数输出星号,因此在执行了前四次循环后,s指针会到达字符串的末尾 ,因此第五次循环不会再执行,即循环执行次数为6次。所以答案为D。"
A:找出字符串s1和s2中共有的字符; B:找出在字符串s1中而不在s2中的所有字符; C:比较两个字符串的长度是否相等; D:将字符串s2连接到s1之后;
AI参考:正确选项是【B:找出在字符串s1中而不在s2中的所有字符】。 根据代码逻辑,函数的功能是找出在字符串s1中而不在字符串s2中的所有字符。函数首先将字符串s1复制到变量s中,然后遍历字符串s2,如果s1和s2中对应位置的字符不相等,就将s1中该字符复制到s中,并在末尾添加字符串结束符 。最后,返回的是在s1中而不在s2中的所有字符。因此,选项B是正确的。选项A、C、D都不符合代码逻辑。"
A:main函数中不能使用return语句。 B:return语句必须返回值; C:return语句只能出现在函数的结尾部分; D:return语句可以在一个函数中出现多次;
AI参考:正确选项是【B:return语句必须返回值;】。在编程中,return语句用于从函数中返回结果。在main函数中可以使用return语句,但是通常main函数不需要返回值,它只是一个程序的入口点。return语句通常出现在函数的结尾部分,用于返回函数执行的结果。在函数中可以多次使用return语句,但每次只能返回一个值。因此,选项B是正确的。'
A:0 B:3 C:-12 D:9
A:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 B:for循环是先执行循环体语句,后判断表达式 C:for循环只能用于循环次数已经确定的情况 D:在for循环中,不能用break语句跳出循环体
AI参考:正确选项:A:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。for循环的描述中,A选项是正确的。B选项是错误的,因为for循环是先判断表达式,再执行循环体语句。C选项也是错误的,因为for循环可以用于循环次数不确定的情况,例如遍历一个集合或者列表。D选项也是错误的,因为for循环中可以使用break语句跳出循环体。因此,正确答案为A选项。'
A:a=2,b=1 B:a=1,b=0 C:a=2,b=2 D:a=1,b=1
AI参考:输出结果为:D:a=1,b=1程序中,变量x的值为1,根据switch语句,执行case 1的代码块。在case 1的代码块中,又嵌套了一个switch语句,当y的值为0时,a++;当y的值为1时,b++。由于y的值没有变化,所以b只会执行一次,即b++为b=1。在case 1的代码块中,还有一个break语句,用于跳出switch语句。因此,执行完case 1的代码块后,a的值变为1,b的值变为1。接下来执行case 2的代码块,由于x的值不是1,所以不会执行case 2的代码块。最后,程序输出变量a和b的值,即a=1,b=1。因此,正确答案是D:a=1,b=1。'
A:if (a=b) x++; B:if (a!=b) x++; C:if (a= D:if (a=>b) x++;
AI参考:正确的选项是 B:if (a!=b) x++;这个语句是用来判断变量a和b是否相等的。在C语言中,等号“=”用于赋值操作,因此选项A中的if (a=b)语句表示将b的值赋给a,然后再判断a是否等于b,这显然是不合法的。选项C中的if语句缺失了表达式,也是不完整的。选项D中的if语句使用大于号“=>”来判断相等关系,这是不合法的。只有选项B中的if语句符合语法规则,它表示如果a不等于b,则将变量x的值加1。'
A:A B:Z C:z D:a
A:puts(a),puts(b); B:printf(“%s %s”,a[],b[]); C:puts(a,b); D:putchar(a,b);
A:0,12 B:1,12 C:0,11 D:1,11
A:1,0 B:1,1 C:0,0 D:0,1
A:break语句只能用于switch语句体中 B:在循环体内使用break语句和continue语句的作用相同 C:continue语句的作用是使程序的执行流程跳出包含它的所有循环 D:break语句只能用在循环体内和switch语句体中
A:t*t B:i*i C:t*10 D:i*10
A:3 B:8 C:9 D:5
A:mornin B:mogninr C:mo D:morning
A:SW B:SW*A C:SW* D:SSW*
A:float x[2][ ]={1,2,4,6,8,10}; B:int m[][3]={1,2,3,4,5,6}; C:int x[2][2]={1,2,3,4}; D:char a[3][10]={"China","American","Asia"};
A:15 B:12 C:4 D:6
A:x=++y B:x+=y+1 C:x=y,y=y+1 D:)x=x+1,y=x
AI参考:正确答案是【B:x+=y+1】。x=y++等价于先让y自增1,再让x加上y的值,所以选项B正确。选项A是先让x自增再让y自增,不符合题意;选项C是赋值语句,不符合题意;选项D是两个独立的语句,也不符合题意。'
A:123 45 B:0 0 C:1 4 D:1 2
A:字符串中有非法字符,输出值不确定 B:3 C:9 D:14
A:0;2;3;4 B:0; C:0;2;3;4;5 D:0 ;1
AI参考:正确选项是:C程序的主要逻辑是一个for循环,循环条件是a小于5且a不等于1。在循环体中,每次输出a的值,即printf("%d ;",a);。因此,程序的运行结果是:0、2、3、4。选项A和B都只输出前两个数字,选项D只输出了一个数字。因此,正确答案是C,即0、2、3、4。'
A:a B:z C:Z D:A
A:3 2 1 B:3 C:2 1 0 D:2
AI参考:正确选项是 C:2 1 0。程序中的 do-while 循环会不断执行,直到 x 的值为 0 为止。在每次循环中,都会输出 x 的值,并递减 1。所以当 x 的初始值为 3 时,循环会输出 3、2、1,直到 x 的值为 0 为止。因此,程序的运行结果是 2、1、0。'
A:结构体可以把不同类型的数据组合成一个整体 B:结构体类型中可以有不同类型的成员 C:结构体中的成员都必须是相同的数据类型 D:结构体是C语言中一种构造数据类型
A:2,3 B:3,2 C:3,0 D:2,0
A:3 B:20 C:6 D:10
A:6 B:10 C:11 D:15
A:p=&stu.age B:p->num C:(p++)->num D:(*p).num
A:s==0 B:s=0 C:s==1 D:s!=0
A:char a="3"; B:char a=’3’; C:char a=%; D:char a=*;
A:12 B:表达式出错 C:15 D:6
A:a>=10||a B:a>=0|a C:a>=10 or a D:a>=10&&a
A:aabbcc dd B:aabbcc ddee C:aa bbccdd D:aabbccdd
AI参考:正确选项是 C:aa bbccdd。程序首先使用scanf函数从键盘输入两个字符串,存储在变量a1和a2中。接着使用gets函数分别从键盘输入两个字符串,存储在变量a3和a4中。程序最后使用puts函数输出变量a1和a2中的字符串,以及变量a3和a4中的字符串。在键盘输入为"aa bb
cc dd
"的情况下,程序将按照以下顺序执行:1. scanf(“%s %s”,a1,a2);:读取输入的"aa bb",并存储在变量a1和a2中。2. gets(a3); gets(a4);:分别从键盘读取两个字符串,并存储在变量a3和a4中。由于gets函数会读取整行的输入,所以这里会读取到回车符
A:32L B:-1 C:567 D:510000
AI参考:正确选项是C:567。在C语言中,整型常量可以是正数、负数或者零。选项A中的32L表示一个长整型常量,选项B中的-1表示一个负数,选项D中的510000是一个十进制整数,都不是题目中要求的整型常量。因此,选项C中的567是一个符合要求的整型常量。'
A:可以通过编译,但是不能通过连接,因而不能运行 B:输出* * * * C:有语法错误不能通过编译 D:输出# # # #
A:对 B:错
A:错 B:对
A:对 B:错
A:对 B:错
A:对 B:错
A:错 B:对
A:错 B:对
A:错 B:对
A:错 B:对
A:对 B:错
温馨提示支付 ¥2.60 元后可查看付费内容,请先翻页预览!