C语言程序设计

不能用printf函数输出字符。

题目

不能用printf函数输出字符。

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列函数中不能用于对文件进行输入输出操作的是()

A、fscanf()

B、printf()

C、fgetc()

D、fputs()


参考答案:B

第2题:

格式化输出可把格式化数据输出到标准输出、指定文件及字符缓冲区。其中()函数是将格式化数据输出到指定大小的字符缓冲区。()

A.printf

B.f printf

C.s printf

D.sn printf


正确答案:D

第3题:

在printf()函数调用的格式字符串中, 若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为 ( )。


正确答案: 5

第4题:

请补充函数fun(),该函数的功能是;删除字符数组中小于等于指定字符的字符,指定字符从键盘输入,结果仍保存

例如,输入“abcdefghij”,指定字符为‘d’,则结果输出“defghij”。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include <stdio. h>

define N 80

void fun (char s[], char ch)

{

int i=0, j=0;

while (s [i] )

{

if (s Iii<ch)

【 】;

else

{

【 】

i++;

}

}

【 】

}

main ()

{

char str [N], ch;

clrscr ();

printf("\n Input a string:\n");

gets (str);

printf("\n*** original string ***\n");

puts (str);

printf("\n Input a character:\n");

scanf ("%c", &ch);

fun(str, ch);

printf("\n*** new string ***\n");

puts (str);

}


正确答案:i++ s[j++]=s[i] s[j]='\0'
i++ s[j++]=s[i] s[j]='\0' 解析:第一空:如果当前字符比指定字符小,则什么都不做,通过i++访问下一个字符。第二空,如果当前字符大于等于指定字符,则将它保存在字符数组s中。第三空:通过保存比指定字符大或相等的字符,来实现删除比指定字符小的字符。处理结束后,在字符串s最后要加上结束标记符‘\0’。

第5题:

请编写函数fun(),它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符1,则输出3。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<coio.h>

include<stdio.h>

define M 81

int fun(char *ss,char c)

{

}

main()

{ char a[M],ch;

clrscr();

printf("\nPlease enter a string:");

gets(a);

printf("\nPlease enter a char:");

ch=getchar();

printf("\nThe number of the char is:%d \n",fun(a,ch));

}


正确答案:int fun(char *sschar c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; }
int fun(char *ss,char c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; } 解析:从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历:若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若“串的字符和c串的字符不对应相同,则继续对,s串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同则表示又出现一次.

第6题:

请编写函数proc,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 例如,若字符串数组中的M个字符串为: ABCD BCDEFG CDEFGHI 则合并后的字符串内容应该是ABCDBCDEFGCDEF—GHl。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。 试题程序: include<stdio.h> include<conio.h> define M 3 define N 20 void proc(char arr[M][N],char*b) {

} void main { char str[M][N]={"ABCD","BCDEFG"," CDEFGHI"},i; char arr[100]={" "); printf("The string:\n"); for(i=0;i<M;i++) puts(str[i]); printf("\n"); proc(str,arr); printf("The A string:\n"); printf("%s",arr); printf("\n\n"); }


正确答案:

void proc(char arr[M][N],char*b)
{
int i,j,k=0;
for(i=0;i<M;i++) //i表示其行下标
for(j=0;.rr[i][j]!=\0 ;j++)//由于每行的个数不等,因此用a[i][j]!=\0 来作为循环结束的条件
b[k++]=arr[il[j]; //把二维数组中的元素茄到b的一维数组中,
b[k]=\0; //最后把b赋\0作为字符串结束的标志
}
【解析】字符串数组中每一行都是一个一个完整的字符串,其结束标志为\0 。因此,通过字符串的结束标志来判断每一个字符串是否结束,将字符串数组中的所有字符串均赋值新的一维数组b来完成字符串的合并。

第7题:

以下叙述中正确的是( )。

A.调用printf函数时,必须要有输出项

B.使用putchar函数时,必须在之前包含头文件stdio.h

C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCⅡ码


正确答案:B

第8题:

在printf()函数调用的格式字符串中,若使用格式符为“ %c”,则对应输出的数据类型为( )。


正确答案:char

第9题:

在printf函数中,格式字符"%5c"可用来输出5个字符。()

此题为判断题(对,错)。


参考答案:错误

第10题:

关于C++ 输出函数cout 与 printf 的区别

我知道在C++中cout  和printf  都能用于输出,但是他俩肯定在输出的方式、细节上有差别的。

我想问 指针,char* p=“abcd”   按我的理解p就是存储地址的变量,输出p就应该是输出存储“abcd”的空间首地址。

用printf则输出的是存储“abcd”的空间首地址(这和我预想的一样),用cout输出p则整个字符数组都输出了,这是为什么?他们两个的输出方式到底有什么差别。以至于输出同一个变量会得到不同的结果?

比如:

   #include<iostream>

#include<stdio.h>

using namespace std;

int main () {

char* p="abcd";

cout<<p<<"                "<<*p;//这里p输出的是abcd完整的字符串,而*p则输出的是第一个字符a。

printf("%x                    %c",p,*p);//这里p则输出的是存储“abcd”的空间首地址,*p则输出第一个字符a。

return 0;

}


 

 

您说的这个跟cout,printf没关系

 

输出不同是因你printf的格式不对

应该为printf("%s                   %c",p,*p)

cout<<p默认帮你进行了格式化,即是%s“”

 

 

更多相关问题